GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie erkennt man die Kodierung von Textdateien automatisch?

Probieren Sie das chardet-Python-Modul aus, das auf PyPI verfügbar ist:

pip install chardet

Führen Sie dann chardetect myfile.txt aus .

Chardet basiert auf dem von Mozilla verwendeten Erkennungscode und sollte daher vernünftige Ergebnisse liefern, vorausgesetzt, der Eingabetext ist lang genug für statistische Analysen. Lesen Sie die Projektdokumentation.

Wie in den Kommentaren erwähnt, ist es ziemlich langsam, aber einige Distributionen liefern auch die ursprüngliche C++-Version aus, wie @Xavier in https://superuser.com/a/609056 gefunden hat. Irgendwo gibt es auch eine Java-Version.


Ich würde diesen einfachen Befehl verwenden:

encoding=$(file -bi myfile.txt)

Oder wenn Sie nur den tatsächlichen Zeichensatz möchten (wie utf-8 ):

encoding=$(file -b --mime-encoding myfile.txt)

Unter Debian-basiertem Linux stellt das Paket uchardet (Debian/Ubuntu) ein Befehlszeilentool bereit. Siehe unten die Paketbeschreibung:

 universal charset detection library - cli utility
 .
 uchardet is a C language binding of the original C++ implementation
 of the universal charset detection library by Mozilla.
 .
 uchardet is a encoding detector library, which takes a sequence of
 bytes in an unknown character encoding without any additional
 information, and attempts to determine the encoding of the text.
 .
 The original code of universalchardet is available at
 http://lxr.mozilla.org/seamonkey/source/extensions/universalchardet
 .
 Techniques used by universalchardet are described at
 http://www.mozilla.org/projects/intl/UniversalCharsetDetection.html

Linux
  1. So fügen Sie unter Linux einfach Text an das Dateiende an

  2. Wie entferne ich doppelte Zeilen in einer Textdatei?

  3. Wie verschiebt man eine Zeile in einer Textdatei um eine Zeile nach oben oder unten?

  4. Wie analysiert man jede Zeile einer Textdatei als Argument für einen Befehl?

  5. Wie leite ich einen Unterprozessaufruf an eine Textdatei weiter?

Wie man Textdateien unter Linux vergleicht und zusammenführt

So erstellen Sie Verzeichnisse aus einer Textdatei unter Linux

So speichern Sie die Linux-Befehlsausgabe in einem Bild oder einer Textdatei

So sperren Sie eine Textdatei in Linux mit dem Befehl flock

So drucken Sie doppelte Zeilen in einer Textdatei unter Linux

So fügen Sie Text am Anfang einer Datei in Linux hinzu