sql >> Databasteknik >  >> RDS >> PostgreSQL

ogiltig bytesekvens för kodning av UTF8

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".



  1. Snabbaste sättet att importera stor CSV-fil till MySql med MySql CLI

  2. Skapa visuell databas med MySQL Workbench

  3. Hur man installerar phpMyAdmin på hanterade värdkonton

  4. SYSDATETIMEOFFSET() Exempel i SQL Server (T-SQL)