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