421 Stimmen

Wie kann ich die Kodierung einer Datei über ein Skript unter Linux ermitteln?

Ich muss die Kodierung aller Dateien finden, die sich in einem Verzeichnis befinden. Gibt es eine Möglichkeit, die verwendete Kodierung zu ermitteln?

があります。 file Befehl ist dazu nicht in der Lage.

Die Kodierung, die mich interessiert, ist ISO 8859-1 . Wenn die Kodierung eine andere ist, möchte ich die Datei in ein anderes Verzeichnis verschieben.

559voto

Shalom Craimer Punkte 19519

Es klingt, als ob Sie Folgendes suchen enca . Es kann Kodierungen erraten und sogar zwischen ihnen konvertieren. Sehen Sie sich einfach die Manpage .

Oder, falls dies nicht möglich ist, verwenden Sie file -i (Linux) oder file -I (OS X). Dadurch werden MIME-Typ-Informationen für die Datei ausgegeben, die auch die Zeichensatzkodierung enthalten. Ich habe eine Man-Seite auch für sie :)

114voto

madu Punkte 1027
file -bi <file name>

Wenn Sie dies für eine Reihe von Dateien tun möchten

for f in `find | egrep -v Eliminate`; do echo "$f" ' -- ' `file -bi "$f"` ; done

64voto

qwert2003 Punkte 721

uchardet - Eine Kodierungsdetektor-Bibliothek, die von Mozilla portiert wurde.

Verwendung:

~> uchardet file.java
UTF-8

Verschiedene Linux-Distributionen ( Debian , Ubuntu , openSUSE , Pacman usw.) stellen Binärdateien zur Verfügung.

32voto

not2qubit Punkte 11725

In Debian können Sie auch verwenden: encguess :

$ encguess test.txt
test.txt  US-ASCII

13voto

fimbulwinter Punkte 101

Um die Kodierung von ISO 8859-1 in ASCII zu konvertieren:

iconv -f ISO_8859-1 -t ASCII filename.txt

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X