Encoding konvertieren #
Manchmal will man eine oder mehrere Dateien von einem Zeichensatz zu einem anderen konvertieren. Wer sich mit diesem Thema beschäftigt (was man daran erkennt, das man diese Seite hier liest), kann hier auch gerne mitdiskutieren, welche Vor- und Nachteile es hat, sein System bzw. Teile davon bzw. einzelne Projekte in ISO-8859-15 oder in UTF-8 zu kodieren.
Welche Tools gibt es? #
Es gibt iconv, das Teil der glibc ist. Hiermit kann man sehr gut mal eben eine Datei in eine konvertierte Version umwwandeln:
iconv -f ISO-8859-15 -t UTF-8 meinedatei
Leider kann dieses Tool keine Datei umwandeln (also das Ergebnis wieder in die gleiche Datei schreiben). Das kann allerdings recode. Mit
recode iso-8859-15..utf-8 meinedatei
wird genau das gemacht. Dabei bleibt sogar die Timestamp der Datei erhalten, was ja auch normalerweise sinnvoll ist. Leider kann man nun aber immer noch keine ganzen Verzeichnisse konvertieren. Dazu habe ich folgendes benutzt:
find mein-pfad/ -not -path "*.svn*" -exec recode iso-8859-15..utf-8 {} ";"
Wie man an dem "-not -path ..." sehen kann, kann man hier noch allerlei find-Optionen angeben, um die Dateien auszuwählen, die man konvertieren möchte. Denn Binärdateien macht man mit einer Konvertierung garantiert kaputt.
Übrigens kann auch ApacheAnt Zeichen konvertieren (siehe dort).