Om du behöver lagra UTF8-data i din databas behöver du en databas som accepterar UTF8. Du kan kontrollera kodningen av din databas i pgAdmin. Högerklicka bara på databasen och välj "Egenskaper".
Men det felet verkar säga att det finns en del ogiltiga UTF8-data i din källfil. Det betyder att copy
verktyget har upptäckt eller gissat att du matar den med en UTF8-fil.
Om du kör under någon variant av Unix kan du kontrollera kodningen (mer eller mindre) med file
verktyg.
$ file yourfilename
yourfilename: UTF-8 Unicode English text
(Jag tror att det kommer att fungera på Mac-datorer i terminalen också.) Osäker på hur man gör det under Windows.
Om du använder samma verktyg på en fil som kom från Windows-system (det vill säga en fil som inte är kodad i UTF8), kommer det förmodligen att visa något så här:
$ file yourfilename
yourfilename: ASCII text, with CRLF line terminators
Om saker och ting fortfarande är konstiga kan du försöka konvertera dina indata till en känd kodning, för att ändra din klients kodning eller båda. (Vi tänjer verkligen på gränserna för min kunskap om kodningar.)
Du kan använda iconv
verktyg för att ändra kodning av indata.
iconv -f original_charset -t utf-8 originalfile > newfile
Du kan ändra psql-kodning (klienten) genom att följa instruktionerna i teckenuppsättningsstöd. På den sidan, sök efter frasen "För att aktivera automatisk teckenuppsättningskonvertering".