Zeichensatz von Dateien unter Debian ändern

Wenn Dateien von Windows auf einen Linuxserver (oder OS mit UTF8) kopiert werden, kann es vorkommen dass Umlaute und Sonderzeichen falsch dargestellt werden.

Ich hatte das Problem mit Exporten einer SQL Datenbank. Beim Importieren in eine MySQL Datenbank wurden trotz aller Charseteinstellungen auf UTF8 die Umlaute falsch dargestellt.
Das liegt daran, dass die Dateien von Windows (oder der Datenbank) als CP1252 codiert waren. Mit folgendem Batchscript können alle Dateien eines bestimmten Ordners von C1252 in UTF8 umgewandelt werden.

FROM=CP1252
TO=UTF-8
ICONV="iconv --from-code=$FROM --to-code=$TO"
find /path/to/folder/ -type f -name "*" | while read fn; do
cp ${fn} ${fn}.bak
$ICONV < ${fn}.bak > ${fn}
rm ${fn}.bak
done

Wer nur eine einzelne Datei konvertieren will, kann folgenden Befehl ausführen:

iconv --from-code=CP1252 --to-code=UTF-8 wrongcharacter.txt > utf8character.txt

Filed under: Allgemeines, Debian, Linux, WindowsTagged with: , , ,

2 Comments

  1. Das geht auch mit dem Befehl “convmv” (ist über die Debian-REPOs verfügbar).

  2. fisrst mal Gracias für den Script, wäre evtl. noch gut wenn Du es erweiterst, falls jemand auch gleich Unterdirectories mitchangen will.


Add a Comment

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Comment *
Name *
Email *
Website