PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Ungültige Bytesequenz für die Codierung von UTF8

Wenn Sie UTF8-Daten in Ihrer Datenbank speichern müssen, benötigen Sie eine Datenbank, die UTF8 akzeptiert. Sie können die Kodierung Ihrer Datenbank in pgAdmin überprüfen. Klicken Sie einfach mit der rechten Maustaste auf die Datenbank und wählen Sie "Eigenschaften".

Aber dieser Fehler scheint Ihnen zu sagen, dass Ihre Quelldatei ungültige UTF8-Daten enthält. Das bedeutet, dass die copy Dienstprogramm hat erkannt oder vermutet, dass Sie es mit einer UTF8-Datei füttern.

Wenn Sie unter einer Unix-Variante laufen, können Sie die Kodierung (mehr oder weniger) mit der file überprüfen Dienstprogramm.

$ file yourfilename
yourfilename: UTF-8 Unicode English text

(Ich denke, das funktioniert auch auf Macs im Terminal.) Ich bin mir nicht sicher, wie das unter Windows geht.

Wenn Sie dasselbe Dienstprogramm für eine Datei verwenden, die von Windows-Systemen stammt (d. h. eine Datei, die nicht codiert in UTF8), wird es wahrscheinlich so aussehen:

$ file yourfilename
yourfilename: ASCII text, with CRLF line terminators

Wenn die Dinge seltsam bleiben, können Sie versuchen, Ihre Eingabedaten in eine bekannte Codierung zu konvertieren, die Codierung Ihres Clients zu ändern oder beides. (Wir gehen wirklich an die Grenzen meines Wissens über Kodierungen.)

Sie können das iconv verwenden Dienstprogramm zum Ändern der Codierung der Eingabedaten.

iconv -f original_charset -t utf-8 originalfile > newfile

Sie können die psql-Codierung (den Client) ändern, indem Sie den Anweisungen unter Zeichensatzunterstützung folgen. Suchen Sie auf dieser Seite nach dem Ausdruck "Um die automatische Zeichensatzkonvertierung zu aktivieren".