Auf meinem Dateisystem (Windows 7) habe ich einige Textdateien (dies sind SQL-Skriptdateien, falls dies wichtig ist).
Beim Öffnen mit Notepad ++ wird im Menü "Codierung" angegeben, dass einige von ihnen eine Codierung von "UCS-2 Little Endian" und einige von "UTF-8 ohne Stückliste" aufweisen.
Was ist der Unterschied hier? Sie scheinen alle perfekt gültige Skripte zu sein. Wie kann ich feststellen, welche Codierungen die Datei ohne Notepad ++ hat?
enca
und chardet
für POSIX-Systeme.
iconv
Insbesondere ist dies für diesen Zweck nützlich. Im Wesentlichen iterieren Sie die fehlerhaften Zeichenfolgen / Texte durch verschiedene Codierungen, um festzustellen, welche funktionieren. Sie gewinnen, wenn die Charaktere nicht mehr beschädigt sind. Ich würde gerne hier mit einem programmatischen Beispiel antworten. Aber es ist leider eine geschützte Frage.
chardet
oder chardetect
nicht verfügbar auf Ihrem System, dann können Sie das Paket über Ihren Paketmanager (zB apt search chardet
- auf Ubuntu / Debian heißt das Paket normalerweise python-chardet
oder python3-chardet
) oder über Pip mit pip install chardet
(oder pip install cchardet
für die schnellere c-optimierte Version) installieren .