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?
encaund chardetfür POSIX-Systeme.
iconvInsbesondere 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.
chardetoder chardetectnicht 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-chardetoder python3-chardet) oder über Pip mit pip install chardet(oder pip install cchardetfür die schnellere c-optimierte Version) installieren .