Jika Anda perlu menyimpan data UTF8 di database Anda, Anda memerlukan database yang menerima UTF8. Anda dapat memeriksa penyandian database Anda di pgAdmin. Cukup klik kanan database, dan pilih "Properties".
Tetapi kesalahan itu sepertinya memberi tahu Anda bahwa ada beberapa data UTF8 yang tidak valid di file sumber Anda. Artinya copy
utilitas telah mendeteksi atau menduga bahwa Anda memberinya file UTF8.
Jika Anda menjalankan beberapa varian Unix, Anda dapat memeriksa penyandian (kurang lebih) dengan file
utilitas.
$ file yourfilename
yourfilename: UTF-8 Unicode English text
(Saya pikir itu akan bekerja pada Mac di terminal juga.) Tidak yakin bagaimana melakukannya di bawah Windows.
Jika Anda menggunakan utilitas yang sama pada file yang berasal dari sistem Windows (yaitu, file yang bukan dikodekan dalam UTF8), itu mungkin akan menampilkan sesuatu seperti ini:
$ file yourfilename
yourfilename: ASCII text, with CRLF line terminators
Jika keadaan tetap aneh, Anda dapat mencoba mengonversi data input Anda ke penyandian yang diketahui, untuk mengubah penyandian klien Anda, atau keduanya. (Kami benar-benar memperluas batas pengetahuan saya tentang penyandian.)
Anda dapat menggunakan iconv
utilitas untuk mengubah penyandian data input.
iconv -f original_charset -t utf-8 originalfile > newfile
Anda dapat mengubah penyandian psql (klien) dengan mengikuti petunjuk pada Dukungan Kumpulan Karakter. Di halaman tersebut, cari frasa "Untuk mengaktifkan konversi kumpulan karakter otomatis".