2009-08-01 00:29:36 +0000 2009-08-01 00:29:36 +0000
46
46

Wie kann ich mehrere Dateien mit *nix-Befehlszeilen-Tools in die UTF-8-Kodierung konvertieren?

Mögliches Duplikat: Batch-Konvertierung von Dateien für Kodierung oder Zeilenende

Ich habe einen Haufen Textdateien, die ich gerne von einem beliebigen Zeichensatz in UTF-8-Kodierung konvertieren würde.

Gibt es irgendwelche Kommandozeilen-Tools oder Perl (oder eine Sprache Ihrer Wahl) One-Liner, mit denen ich das massenhaft machen kann?

Antworten (1)

56
56
56
2009-08-01 01:25:17 +0000

iconv kann zwischen vielen Zeichenkodierungen konvertieren. Also fügen wir ein wenig Bash-Magie hinzu und können

for file in *.txt; do
    iconv -f ascii -t utf-8 "$file" -o "${file%.txt}.utf8.txt"
done

schreiben. Dies führt iconv -f ascii -t utf-8 an jede Datei aus, die auf .txt endet, und sendet die umkodierte Datei an eine Datei mit demselben Namen, die aber auf .utf8.txt statt auf .txt endet.

Es ist nicht so, dass dies tatsächlich etwas mit Ihren Dateien machen würde (weil ASCII eine Untermenge von UTF-8 ist), aber um Ihre Frage zu beantworten, wie man zwischen Kodierungen konvertiert.