Warum gehen Dateinamen zwischen Mac und Windows kaputt?

Haben Sie schon einmal eine Datei von einem Mac an einen Windows-PC gesendet und festgestellt, dass der Dateiname unleserlich war — getrennte Umlaute, seltsame Zeichen? Das liegt am Unicode-Problem NFD vs NFC.

Was ist Unicode?

Unicode ist der universelle Standard zur Textkodierung. Er weist jedem Zeichen jeder Sprache eine eindeutige Nummer (Codepunkt) zu. Zum Beispiel ist 'A' U+0041 und 'ü' ist U+00FC.

NFC vs NFD: Die eigentliche Ursache

Unicode erlaubt es, bestimmte Zeichen auf zwei verschiedene Arten darzustellen:

NFC (Zusammengesetzte Form)

Zeichen werden als einzelner Codepunkt gespeichert. Zum Beispiel wird 'ü' als U+00FC gespeichert.

"e" = U+00E9(1 code point)

NFD (Zerlegte Form)

Zeichen werden in ein Basiszeichen und kombinierende Markierungen zerlegt. Das gleiche 'ü' wird zu U+0075 (u) + U+0308 (kombinierendes Trema).

"e" + " ́" = U+0065 + U+0301(2 code points)

Beide Formen sehen auf dem Bildschirm identisch aus, werden aber unterschiedlich im Speicher abgelegt. Dieser Unterschied ist die Ursache defekter Dateinamen.

Warum verwendet macOS NFD?

Apple hat NFD für seine Dateisysteme (HFS+ und später APFS) gewählt, da die zerlegte Form eine kanonische Dekomposition bietet, die den Zeichenkettenvergleich vereinfacht. Wenn macOS eine Datei speichert, konvertiert es den Dateinamen automatisch in NFD. Windows und Linux hingegen verwenden in der Regel NFC. Wenn Sie also eine Datei von Mac zu Windows übertragen, kann der Dateiname zerlegte Zeichen enthalten, die Windows nicht korrekt anzeigt.

🇰🇷 Koreanisch: Der auffälligste Fall

Bei Koreanisch ist dieses Problem am deutlichsten sichtbar. In NFC ist die Silbe '한' ein einzelnes Zeichen (U+D55C). In NFD wird sie in drei Jamo zerlegt: 'ㅎ' (U+1112) + 'ㅏ' (U+1161) + 'ㄴ' (U+11AB). Ein Dateiname wie '한글.txt' wird unter Windows zu 'ㅎㅏㄴㄱㅡㄹ.txt' — völlig unlesbar.

ㅎㅏㄴㄱㅡㄹ.txt한글.txt

🇫🇷 Französisch: Getrennte Akzente

Französische Akzentzeichen wie é, è, ê und ç sind betroffen. In NFD wird 'résumé.pdf' zu 'r + e + kombinierender Akut + sum + e + kombinierender Akut.pdf'. Auf manchen Systemen sieht das ähnlich aus, aber es kann Probleme bei der Dateisuche, der Sortierung und in manchen Anwendungen verursachen.

résumé.pdfrésumé.pdf

🇩🇪 Deutsch: Defekte Umlaute

Deutsche Umlaute (ö, ü, ä) werden in NFD zerlegt. 'Über.docx' wird zu 'U + kombinierendes Trema + ber.docx'. Dies kann Probleme beim Teilen von Dateien mit Windows- oder Linux-Benutzern verursachen.

Über.docxÜber.docx

🇻🇳 Vietnamesisch: Komplexe diakritische Zeichen

Vietnamesisch ist besonders betroffen, da Zeichen oft mehrere diakritische Markierungen tragen. Ein Zeichen wie 'ệ' kann in 'e + kombinierender Zirkumflex + kombinierender Punkt unten' zerlegt werden — drei Codepunkte für ein sichtbares Zeichen.

Việt Nam.txtViệt Nam.txt

🇪🇸 Spanisch: Das ñ-Problem

Das spanische ñ (Eñe) wird von einem einzelnen U+00D1 in 'N' + kombinierende Tilde (U+0303) zerlegt. Ebenso sind akzentuierte Vokale wie á, é, í, ó, ú betroffen.

España.txtEspaña.txt

Wann tritt dieses Problem auf?

  • E-Mail-Anhänge von Mac an Windows senden
  • Dateien über USB-Sticks teilen
  • Upload in Cloud-Speicher (Google Drive, Dropbox, OneDrive)
  • Dateiübertragung über das Netzwerk (NAS, SMB-Freigaben)
  • Auf dem Mac erstellte ZIP-Dateien entpacken
  • Versionskontrollsysteme verwenden (Git)

Wie FilenameFixer das Problem löst

FilenameFixer konvertiert Dateinamen von NFD nach NFC mithilfe der nativen JavaScript-Methode String.prototype.normalize(). Die Konvertierung findet vollständig in Ihrem Browser statt — keine Dateien werden an einen Server gesendet. Der Dateiinhalt bleibt völlig unverändert; nur der Dateiname wird geändert.

Warum im Browser verarbeiten?

Die Verarbeitung im Browser bedeutet, dass Ihre Daten Ihr Gerät nie verlassen. Es gibt keinen Server, dem Sie vertrauen müssen, keine Datenschutzrichtlinie, über die Sie sich Gedanken machen müssen, und kein Risiko von Datenlecks. Das Tool funktioniert außerdem offline und ist extrem schnell.