Dateinamen in UTF-8

Auf UNIX Filesystemen werden die Dateinamen schon seit längerer Zeit mit der Zeichenkodierung UTF-8 gespeichert. Da auch NFS seit langem UTF-8 unterstützt könnte man meinen, man sei im UNIX-Paradies des heterogenen Dateiaustausches.

Leider nicht, denn einer macht’s immer anders. Mac OS X hat sich für eine spezielle Variante entschieden, bekannt unter Form D

Form D kennt kein „precomposing“ – ein zusammengesetzes Zeichen, bpsw. deutsche Umlaute, wird getrennt als Buchstabe und die darüberliegenden Pünktchen kodiert. Dieses Vorgehen hat Vorteile bei der Suche.

Der Nachteil ist dass alle anderen, Linux – Windows – kommerzielle UNIX’es – W3C das „precomposing“, bekannt als Form C verwenden. Dort wird ein Umlaut als ein Zeichen (mit 2 Bytes) kodiert.

Lediglich die Zeichen des ASCII Codecs sind immer gleich. Falls man Dateinamen mit Zeichen ausserhalb des ASCII Bereiches verwendet, wird man Probleme bekommen. Tatsache ist:

Form C Dateinamen aus der Linux/UNIX Welt kann der Finder in Mac OS X darstellen, aber einige Programme aus dem Hause Apple nicht öffnen (bspw. iPhoto)

Form D Dateinamen aus der Mac OS X Welt können zumindest unter Linux problemlos verarbeitet werden. Zudem stellen konsole/xterm die Dateinamen einwandfrei dar – konqueror sieht man das decomposing an – María wird mit einem i-Punkt und einem Akzent dargestellt – das ist verkraftbar…

Hier ist Linux flexibler und muss als Klügerer nachgeben – mit folgendem Befehl werden alle Dateinamen in den home Verzeichnisse von Form C auf Form D konvertiert.

convmv -r -f utf8 -t utf8 –nfd –notest /home

Ein Gedanke zu „Dateinamen in UTF-8“

  1. Man kann (auch) Mac-seitig Dateinamen von UTF-8 Normal Form D auf Form C konvertieren (und umgekehrt) mittels iconv!

    echo /path/to/file | iconv -f utf-8-mac -t utf-8

Schreibe einen Kommentar zu jens Antworten abbrechen

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