sql >> Databáze >  >> RDS >> PostgreSQL

neplatná sekvence bajtů pro kódování UTF8

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



  1. SQL Server SELECT, kde jakýkoli sloupec obsahuje 'x'

  2. Zdarma ES pro 11.2.0.4 a 12.2 Datum vydání

  3. Umožňuje oracle možnost nepotvrzeného čtení?

  4. Extrahujte měsíc z data v PostgreSQL