← Alle Artikel

Umlaute im Dateinamen: Windows findet Mac-Datei nicht

Die Datei steht im Datei-Explorer. Ein Doppelklick öffnet sie ohne Probleme. Doch sobald Sie den Namen in einen Befehl, ein Skript, einen Excel-Hyperlink, einen Stapelauftrag oder die Adressleiste eintippen, meldet Windows: „Das System kann die angegebene Datei nicht finden.“ Wenn die Datei von einem Mac stammt und Umlaute im Dateinamen stehen (oder andere Sonderzeichen wie é, ç oder koreanische Silben), ist die Ursache fast immer die Unicode-Normalisierung: macOS speichert solche Namen häufig in der zerlegten Form (NFD), während alles, was Sie unter Windows eingeben, in der zusammengesetzten Form (NFC) vorliegt. Auf dem Bildschirm sehen beide Varianten identisch aus, technisch sind es aber unterschiedliche Zeichenfolgen, und für Windows sind das zwei verschiedene Namen. Die Lösung besteht darin, die Datei so umzubenennen, dass der Name die zusammengesetzte Form verwendet. Das geht mit einem kurzen PowerShell-Befehl oder mit einem Werkzeug im Browser, und dieser Artikel zeigt beide Wege.

Warum Umlaute im Dateinamen zwischen Mac und Windows brechen

Unicode kennt für viele Buchstaben mit Akzent oder Umlautpunkten zwei Schreibweisen. Das ü kann ein einzelner Codepunkt sein (U+00FC, „zusammengesetzt“, NFC genannt), oder es besteht aus einem schlichten u, gefolgt von einem separaten kombinierenden Trema (U+0075 + U+0308, „zerlegt“, NFD genannt). Der Bildschirm zeigt in beiden Fällen ein ü. Die Rechtschreibprüfung akzeptiert beides. Menschen erkennen keinen Unterschied.

Dateisysteme schon. Windows (NTFS) vergleicht Dateinamen anhand der tatsächlichen Zeichenfolge. Groß- und Kleinschreibung ignoriert es, aber ü und u + ◌̈ behandelt es nicht als gleich. Wurde also eine Datei namens Müller_Vertrag.pdf auf einem Mac angelegt und dort als Mu + ◌̈ller_Vertrag.pdf gespeichert, und Sie tippen unter Windows Müller_Vertrag.pdf, fragen Sie nach einem Namen, den es auf dieser Festplatte nicht gibt.

macOS hat historisch die zerlegte Form bevorzugt. Das ältere Dateisystem HFS+ wandelte jeden Dateinamen in NFD um, und viele Mac-Programme und Kopierwerkzeuge erzeugen bis heute NFD-Namen. Wandern diese Dateien per USB-Stick, Netzlaufwerk, Cloud-Ordner oder E-Mail-Anhang auf einen Windows-Rechner, kommt der zerlegte Name unverändert mit.

Betroffene Zeichen:

  • Lateinische Buchstaben mit Umlauten, Akzenten oder anderen diakritischen Zeichen: Müller, Jürgen, Köln, Bärbel, René, Łódź. Das ß ist nicht betroffen, weil es nicht zerlegt wird.
  • Koreanische Hangul-Silben, die in Einzelbuchstaben zerfallen (한글 erscheint in manchen Anzeigen als ㅎㅏㄴㄱㅡㄹ)
  • Japanische Kana mit Dakuten oder Handakuten (が wird zu か + ゛)
  • Vietnamesisch, das mehrere Zeichen auf einem Vokal stapelt

Reine ASCII-Namen (Bericht_final_v2.pdf) sind nie betroffen. Deshalb wirkt das Problem so zufällig: Nur die Dateien von Frau Müller, Herrn Schäfer oder der koreanischen Kollegin machen Ärger.

So prüfen Sie, ob wirklich die Normalisierung schuld ist

Bevor Sie etwas umbenennen, sollten Sie ausschließen, dass es sich nur um einen Tippfehler, ein Leerzeichen am Ende oder den falschen Ordner handelt. Drei schnelle Tests:

1. Platzhalter ausprobieren

Öffnen Sie den Ordner in PowerShell (Rechtsklick auf eine freie Fläche im Ordner, dann Im Terminal öffnen oder PowerShell-Fenster hier öffnen) und führen Sie aus:

Get-ChildItem M*ller*.pdf

Findet der Platzhalter die Datei, der vollständig getippte Name aber nicht, enthält der Name Zeichen, die von Ihrer Eingabe abweichen. Das ist das typische Erkennungszeichen der Normalisierung.

2. Länge vergleichen

Führen Sie im selben Ordner aus:

Get-ChildItem | ForEach-Object { "$($_.Name.Length)  $($_.Name)" }

Ein Name wie Müller.pdf sollte 10 Zeichen lang sein. Meldet PowerShell 11, steckt ein unsichtbares zusätzliches Zeichen darin: das kombinierende Trema, das auf das schlichte u folgt.

3. PowerShell direkt fragen

Get-ChildItem | Where-Object { $_.Name -ne $_.Name.Normalize('FormC') } | Select-Object Name

Dieser Befehl listet jede Datei im Ordner, deren Name noch nicht in der zusammengesetzten Form vorliegt. Taucht Ihre Problemdatei auf, haben Sie die Antwort.

Dieselbe Diskrepanz zeigt sich unter Windows auch an Stellen, an denen Sie nie einen Befehl eingegeben haben:

  • Hyperlinks in Excel oder Word auf lokale Dateien, die beim Mac-Kollegen funktionieren, bei Ihnen aber „Die angegebene Datei kann nicht geöffnet werden“ liefern.
  • Batch-Skripte, Sicherungsaufträge oder Importwerkzeuge, die mit einer Dateinamensliste konfiguriert sind.
  • „Speichern unter“ legt eine zweite Müller.pdf an, statt zu fragen, ob die vorhandene überschrieben werden soll.
  • Die Suche in manchen Programmen findet beim exakten Namen nichts, während eine Teilsuche ohne den Umlaut die Datei liefert.

Lösung 1: Dateien unter Windows mit PowerShell umbenennen

Wer mit der Kommandozeile vertraut ist, hat unter Windows bereits alles an Bord. Die .NET-Methode Normalize('FormC') wandelt einen zerlegten Namen in die zusammengesetzte Form um, und Rename-Item wendet das Ergebnis an.

  1. Öffnen Sie den betroffenen Ordner wie oben beschrieben in PowerShell.

  2. Lassen Sie sich zuerst anzeigen, was sich ändern würde (noch wird nichts umbenannt):

    Get-ChildItem -Recurse -File |
      Where-Object { $_.Name -ne $_.Name.Normalize('FormC') } |
      Select-Object FullName
    
  3. Sieht die Liste richtig aus, benennen Sie um:

    Get-ChildItem -Recurse -File |
      Where-Object { $_.Name -ne $_.Name.Normalize('FormC') } |
      Rename-Item -NewName { $_.Name.Normalize('FormC') }
    
  4. Wiederholen Sie die -ne-Prüfung aus dem vorigen Abschnitt. Sie sollte jetzt nichts mehr zurückgeben.

Hinweise und Grenzen:

  • -Recurse durchläuft auch Unterordner. Lassen Sie es weg, wenn nur der aktuelle Ordner gemeint ist. Auch Ordnernamen selbst können zerlegt sein; führen Sie den Befehl ein weiteres Mal ohne -File aus und benennen Sie dabei die tiefsten Ordner zuerst um.
  • Umbenannt wird Ihre Kopie. Liegen die Dateien in einem synchronisierten Ordner (OneDrive, Dropbox, Google Drive), wird die Umbenennung zurück auf den Mac synchronisiert. Das ist meist erwünscht, denn der zusammengesetzte Name funktioniert auf beiden Seiten.
  • Ein Hyperlink oder ein Skript, das den alten zerlegten Namen per Kopieren und Einfügen vom Mac übernommen hat, zeigt danach auf einen Namen, den es nicht mehr gibt. In der Praxis ist das selten, denn das ganze Problem besteht ja darin, dass Menschen die zusammengesetzte Form tippen.

Lösung 2: im Browser umbenennen, ohne Kommandozeile

Wenn PowerShell nichts für Sie ist oder Sie einen bunten Haufen Dateien und ZIP-Archive von mehreren Personen vor sich haben, erledigt die kostenlose FilenameFixer-Web-App dieselbe Umwandlung per Drag-and-drop.

  1. Öffnen Sie die Web-App in Chrome, Edge, Firefox oder Safari.
  2. Ziehen Sie die betroffenen Dateien auf die Seite. Sie können einen ganzen Stapel auf einmal ablegen.
  3. Das Werkzeug erkennt Namen in der zerlegten Form und zeigt die zusammengesetzte (NFC-)Variante, die es anwendet.
  4. Laden Sie die umbenannten Dateien herunter und ersetzen Sie damit die Originale.

Ein paar Details, die man wissen sollte:

  • Dateien und Dateinamen werden lokal in Ihrem Browser verarbeitet. Sie werden nicht auf einen Server hochgeladen, ein vertraulicher Vertrag namens Müller_Vertrag.pdf bleibt also auf Ihrem Rechner.
  • Stecken die kaputten Namen in einem ZIP-Archiv, das Ihnen ein Mac-Nutzer geschickt hat, schreibt das separate ZIP-Wiederherstellungswerkzeug die Namen innerhalb des Archivs um (bis 200 MB), sodass Sie es unter Windows normal entpacken können.
  • Es gibt außerdem ein Textfeld für eingefügten Text. Hat Ihnen jemand eine Liste von Dateinamen per E-Mail oder Tabelle geschickt und Ihre SVERWEIS-Formeln finden die Dateien auf der Festplatte nicht, fügen Sie die Liste ein und kopieren Sie die normalisierte Version heraus.

FilenameFixer kann nichts, was PowerShell nicht auch könnte. Es erspart nur das Wissen, welcher Befehl der richtige ist, und es kommt mit Archiven zurecht, was der Rename-Item-Weg oben nicht tut.

So verhindern Sie das nächste Mal

Umbenennen rettet die heutigen Dateien. Damit es nicht wieder passiert:

  • Bitten Sie die Mac-Seite, beim Packen an die Normalisierung zu denken, oder lassen Sie sich die Dateien über ein Webformular schicken. Viele Upload-Wege im Web normalisieren Namen beim Hochladen, allerdings nicht alle.
  • Nutzen Sie die Chrome-Erweiterung, wenn Sie Mac-Dateien in Web-Anwendungen hochladen. Die FilenameFixer-Chrome-Erweiterung wandelt Dateinamen automatisch in NFC um, wenn Sie Dateien in einem Upload-Dialog auswählen. Ein Dokumentenmanagementsystem im Intranet oder ein Ticketsystem erhält so von Anfang an den zusammengesetzten Namen.
  • Verwenden Sie für gemeinsame Projektdateien möglichst ASCII-Namen. mueller_vertrag.pdf funktioniert überall und berührt dieses Problem nie. Es sieht weniger schön aus, aber für alles, was ein Skript, ein Hyperlink oder eine Importliste referenziert, ist es die sicherste Wahl.
  • Normalisieren Sie im Code. Wenn Sie Software schreiben, die Dateinamen von der Festplatte liest und mit Benutzereingaben vergleicht, normalisieren Sie beide Seiten vor dem Vergleich nach NFC. Die meisten Sprachen haben dafür einen Einzeiler (.Normalize('FormC') in .NET, unicodedata.normalize('NFC', s) in Python, str.normalize('NFC') in JavaScript).

Nichts davon ist ein Windows-Fehler oder ein Mac-Fehler. Beide Betriebssysteme speichern exakt die Bytes, die sie bekommen haben. Die Diskrepanz entsteht nur, weil zwei gültige Schreibweisen desselben Buchstabens auf einer Festplatte aufeinandertreffen. Der schnellste Weg, den Streit zu beenden: die zusammengesetzte Form wählen und umbenennen.