Hvis du skal gemme UTF8-data i din database, skal du bruge en database, der accepterer UTF8. Du kan kontrollere kodningen af din database i pgAdmin. Bare højreklik på databasen, og vælg "Egenskaber".
Men den fejl lader til at fortælle dig, at der er nogle ugyldige UTF8-data i din kildefil. Det betyder, at copy
værktøjet har opdaget eller gættet, at du fodrer det med en UTF8-fil.
Hvis du kører under en variant af Unix, kan du kontrollere kodningen (mere eller mindre) med file
værktøj.
$ file yourfilename
yourfilename: UTF-8 Unicode English text
(Jeg tror, at det også vil fungere på Mac'er i terminalen.) Ved ikke, hvordan man gør det under Windows.
Hvis du bruger det samme værktøj på en fil, der kom fra Windows-systemer (det vil sige en fil, der ikke er kodet i UTF8), vil det sandsynligvis vise noget som dette:
$ file yourfilename
yourfilename: ASCII text, with CRLF line terminators
Hvis tingene forbliver underlige, kan du prøve at konvertere dine inputdata til en kendt kodning, for at ændre din klients kodning eller begge dele. (Vi strækker virkelig grænserne for min viden om kodninger.)
Du kan bruge iconv
værktøj til at ændre kodning af inputdata.
iconv -f original_charset -t utf-8 originalfile > newfile
Du kan ændre psql (klienten)-kodning ved at følge instruktionerne i Character Set Support. På den side skal du søge efter sætningen "For at aktivere automatisk tegnsætkonvertering".