English

Unicode Normalizer — NFC, NFD, NFKC, NFKD

A Unicode normalization tool for text and file names, including decomposed macOS names

Runs in your browser · nothing is uploaded

Normalization form

Pick NFC to fix decomposed text such as Korean or accented file names created on a Mac (usually NFD).

Convert text

The example is stored decomposed (NFD), as macOS does for file names. It looks the same but compares as different text.

  • 6 decomposed Hangul jamo
  • 0 compatibility characters NFKC would change

Converted to NFC: 28 code points → 22

Result
Résumé – 한글 report.pdf
Show code points
Before
U+0052 U+0065 U+0301 U+0073 U+0075 U+006D U+0065 U+0301 U+0020 U+2013 U+0020 U+1112 U+1161 U+11AB U+1100 U+1173 U+11AF U+0020 U+0072 U+0065 U+0070 U+006F U+0072 U+0074 U+002E U+0070 U+0064 U+0066
After
U+0052 U+00E9 U+0073 U+0075 U+006D U+00E9 U+0020 U+2013 U+0020 U+D55C U+AE00 U+0020 U+0072 U+0065 U+0070 U+006F U+0072 U+0074 U+002E U+0070 U+0064 U+0066

Fix file names in bulk

Paste file names one per line, or choose files to download them in a ZIP with normalized names. Files never leave your browser.

Applies Unicode Standard Annex #15 (Unicode Normalization Forms) with the browser’s String.prototype.normalize. NFC and NFD never change how text looks or what it means; NFKC and NFKD also fold compatibility characters such as full-width letters (A→A), circled numbers (①→1) and unit symbols (㎏→kg), so the text can look different. File names in the ZIP are stored as UTF-8.

What it is

The Unicode normalizer makes text that looks identical also be identical underneath. The same letter can be stored in more than one way: “é” can be a single code point or an “e” followed by a combining accent, and a Korean syllable can be one code point or three jamo. Mixing the two forms causes failed searches, duplicate file names and rejected uploads. Paste text or file names, pick a normalization form and get consistent output.

How to use

  1. Pick a form. NFC is the right choice for fixing decomposed text from macOS.
  2. Paste text into the first box. The result appears at once, with counts of decomposed jamo and compatibility characters.
  3. Open “Show code points” to compare the values before and after.
  4. In the file-name section, paste names one per line or choose files.
  5. If you chose files, download the ZIP with normalized names.

How it works

  • The four forms of Unicode Standard Annex #15 (Unicode Normalization Forms) are applied with the browser’s String.prototype.normalize.
  • Decomposed Hangul is counted as conjoining jamo (U+1100–U+11FF and the extended blocks). Compatibility jamo typed on a keyboard, such as ㅋ, are not counted as decomposed.
  • Compatibility characters are those whose NFKC form differs from their NFC form.
  • File names in the ZIP are stored as UTF-8 and file contents are stored without recompression. Up to 200 files and 500 MB at a time; 150 MB on phones and tablets, because the ZIP is built in memory.

Examples

Input Form Result
cafe + U+0301 (5 code points) NFC café (4)
café NFD cafe + U+0301
A①㎏fi NFKC A1kgfi
decomposed 한글.txt (10 code points) NFC 한글.txt (6)
㈜ NFKC (주)

FAQ

Why do file names from a Mac look broken elsewhere?

macOS stores file names decomposed (NFD), so é is saved as e plus a combining accent and Korean syllables as separate jamo. Some Windows programs and web forms show the pieces separately or treat the name as different text. Converting to NFC joins them again.

Can it rename the files on my computer?

A web page cannot rename files on your disk. Choose the files and download them in a ZIP with normalized names, or copy the corrected list of names.

What is the difference between NFC and NFKC?

NFC only joins characters that are equivalent, so text looks and means the same. NFKC also folds compatibility characters such as full-width letters, circled numbers, ligatures like fi and unit symbols like ㎏ into plain characters, which can change how text looks.

The two strings look identical. Why does it matter?

NFC and NFD text can look the same but compare as different, which breaks search, duplicate checks and uploads. Open "Show code points" to see the actual values.

Is anything uploaded?

No. Normalizing and building the ZIP happen in your browser.

Missing a tool?