← All articles

Mac filename broken on Windows? NFD vs NFC explained

If a Mac filename is broken on Windows — "José_invoice.pdf" shows up as "José_invoice.pdf" with a floating accent, a Korean colleague's file reads "ㅈㅓㅇㅅㅏㄴㅅㅓ.xlsx" instead of "정산서.xlsx", or Windows search simply cannot find a file you can plainly see — the file itself is fine. The name is stored in a different Unicode spelling (called NFD) than Windows expects (NFC). The fix is to rewrite the name in the composed form: either retype it on Windows, run a short PowerShell command, or drop the files into a free browser tool such as FilenameFixer that converts the names in one go.

This article explains what is going on without assuming you are a developer, then walks through the fixes in order of effort.

What a Mac filename broken on Windows looks like

The problem only affects names containing letters that can be written as a base letter plus a mark. In practice that means:

  • Accented Latin letters: José, Zoë, Müller, résumé, crème brûlée
  • Korean: any Hangul syllable, because each syllable is built from individual letters (jamo)
  • Japanese: kana with dakuten or handakuten, such as が, ぱ, ど
  • Vietnamese and other languages with stacked diacritics

Plain ASCII names like "report_final_v3.docx" never have this problem, which is why many people go years without noticing it.

Typical symptoms on the Windows side:

  1. The name displays with a visible gap or a detached accent, or Korean splits into separate letters.
  2. The name looks correct in File Explorer, but typing it into the search box returns nothing.
  3. You appear to have two files with the exact same name in one folder, and Windows does not complain. One was created on the Mac, the other on Windows.
  4. A script, backup tool or sync client reports "file not found" for a file that is clearly there.
  5. A web form rejects the upload or stores the name with a strange spelling.

The reverse happens too. A Windows user sends "Zoë.jpg" to a Mac, and a shell script on the Mac that looks for the Windows spelling fails. It is the same underlying cause.

Why it happens: NFD and NFC in plain language

Unicode, the standard that lets computers write every language, allows some characters to be spelled in two different ways that look identical on screen.

  • Composed form (NFC): "é" is one single character. This is what you get when you type é on a Windows keyboard, and it is what most web servers, databases and file systems assume.
  • Decomposed form (NFD): "é" is two characters, a plain "e" followed by a separate "combining acute accent" that is drawn on top of it. The same applies to Korean, where "한" becomes ㅎ + ㅏ + ㄴ, and to Japanese, where "が" becomes か + a separate dakuten mark.

NFC and NFD are just the technical names for "composed" and "decomposed". The letters mean Normalization Form C and Normalization Form D; you do not need to remember that.

For many years macOS stored every filename on its disk in the decomposed form. Newer Macs are more flexible, but a lot of macOS software still produces decomposed names, including the built-in Finder "Compress" command that creates ZIP files. So when a file leaves a Mac — through a ZIP, a USB stick, email, a shared drive or a web upload — its name often travels in NFD.

Windows does not convert anything. It treats the two spellings as different sequences of characters, which is why you can end up with two "identical" files in one folder, and why searching for the composed spelling misses the decomposed file. Whether the accent renders cleanly or with a gap depends on the font and the program showing the name, which is why the same file can look fine in Explorer and broken in an email client.

Nothing inside the file is affected. A PDF with a decomposed name opens exactly like any other PDF. Only the label is wrong.

How to fix a Mac filename broken on Windows

Pick the method that matches how many files you have.

One or two files: retype the name on Windows

  1. Select the file in File Explorer and press F2.
  2. Delete the affected characters and type them again using your own keyboard (for example, Alt code, the touch keyboard, or copy from a Word document you typed yourself).
  3. Press Enter.

Windows writes the composed form, so the new name behaves normally. Do not paste the old name back in — that would reuse the decomposed spelling.

A folder full of files: PowerShell

Windows ships with PowerShell, and .NET has a built-in normalization function, so no download is needed.

  1. Open the folder in File Explorer.
  2. Click the address bar, type powershell and press Enter. A window opens already pointed at that folder.
  3. Paste this line and press Enter:
Get-ChildItem -File | Where-Object { $_.Name -ne $_.Name.Normalize('FormC') } | Rename-Item -NewName { $_.Name.Normalize('FormC') }

The Where-Object part skips files whose names are already composed, so running it twice is harmless. Remove -File if you also want folders renamed, and add -Recurse after Get-ChildItem to include subfolders. As with any bulk rename, try it on a copy first if the files matter.

No command line, or you are on a shared or locked-down PC: a browser tool

The free FilenameFixer web app does the same conversion in a browser. You drag files onto the page, it renames them from NFD to NFC in a batch, and you download the results. The processing happens locally in your browser; the files and their names are not sent to a server, which matters if the documents are confidential. There is also a text box where you can paste a list of names (for example from a spreadsheet or an email) and get the composed version back.

ZIP file names garbled between Mac and Windows

ZIP files are the most common carrier of this problem, because the Finder's Compress command writes decomposed names into the archive. When a Windows user extracts it, every accented, Korean or Japanese name inside is in NFD at once.

You can extract first and then run the PowerShell command above. Or, if you would rather fix the archive before extracting, FilenameFixer has a ZIP filename restore page that takes an archive up to 200 MB, rewrites the names inside, and gives you back a ZIP that extracts cleanly on Windows. Again this runs in the browser without uploading the archive.

If the names inside a ZIP are not just split but genuinely unreadable (question marks, boxes, or strings like "À̹Ì"), that is a different problem — a legacy encoding issue rather than NFD — and the Windows "Extract All" dialog or a third-party archiver with an encoding setting is the place to look.

Preventing the problem next time

If you send files from a Mac. Avoid accents and non-Latin characters in filenames meant for Windows users when you can; "jose-invoice.pdf" travels anywhere. If the names must keep their proper spelling, run the names through a normalizer before sending, and tell the recipient what to do if something still looks off.

If you upload files through web forms. Many sites and content management systems store filenames in NFC and do not handle the decomposed version well, so an upload from a Mac can end up with a mismatched or rejected name. The FilenameFixer Chrome extension normalizes filenames automatically at the moment you pick a file in an upload dialog, which removes the step of renaming beforehand. The extension itself does not include analytics.

If you write scripts or run a server. Normalize filenames to NFC at the boundary where files enter your system, and compare names only after normalizing both sides. In Python that is unicodedata.normalize("NFC", name); in JavaScript, name.normalize("NFC"); in .NET, name.Normalize(NormalizationForm.FormC). Git users on macOS can set git config --global core.precomposeunicode true so that filenames are recorded in the composed form and do not show as endlessly modified between Mac and Windows checkouts.

Quick questions

Is the file damaged? No. Only the name is spelled differently. Renaming never touches the contents.

Why does the name look fine in Explorer but not in search or in my sync tool? Explorer draws the two spellings nearly identically with most fonts. Search and sync tools compare the raw characters, where "é" and "e + accent" are not equal.

Will the Mac user see my renamed file correctly? Yes. Modern macOS reads both forms. The composed form is the safer choice for anything that moves between systems.

Do I need to install anything? Not for the PowerShell route. The browser tool needs only Chrome, Edge, Firefox or Safari; the Chrome extension is optional and only helps with web uploads.

The short version: NFD and NFC are two spellings of the same letters, macOS tends to produce one and Windows expects the other, and converting the names — by retyping, by PowerShell, or with a browser tool — makes the files behave normally again.