Pokud potřebujete uložit data UTF8 do databáze, potřebujete databázi, která přijímá UTF8. Kódování vaší databáze můžete zkontrolovat v pgAdmin. Stačí kliknout pravým tlačítkem na databázi a vybrat "Vlastnosti".
Zdá se však, že tato chyba vám říká, že ve zdrojovém souboru jsou nějaká neplatná data UTF8. To znamená, že copy
obslužný program zjistil nebo uhodl, že do něj vkládáte soubor UTF8.
Pokud používáte nějakou variantu Unixu, můžete kódování (více či méně) zkontrolovat pomocí file
utility.
$ file yourfilename
yourfilename: UTF-8 Unicode English text
(Myslím, že to bude fungovat i na počítačích Mac v terminálu.) Nejsem si jistý, jak to udělat ve Windows.
Pokud použijete stejný nástroj pro soubor, který pochází ze systémů Windows (tj. soubor, který není zakódované v UTF8), bude pravděpodobně zobrazovat něco takového:
$ file yourfilename
yourfilename: ASCII text, with CRLF line terminators
Pokud věci zůstanou divné, můžete zkusit převést vstupní data na známé kódování, změnit kódování klienta nebo obojí. (Opravdu prodlužujeme hranice mých znalostí o kódování.)
Můžete použít iconv
nástroj pro změnu kódování vstupních dat.
iconv -f original_charset -t utf-8 originalfile > newfile
Kódování psql (klient) můžete změnit podle pokynů na stránce Podpora znakových sad. Na této stránce vyhledejte frázi „Aktivace automatické konverze znakové sady“.