Skip to content

Unicode Normaliser

Applies NFC, NFD, NFKC or NFKD — the fix for Korean text from macOS that looks right but never matches.

Converts text between the four Unicode normalisation forms and shows what each one changes, in code points and in bytes. The practical case is Korean: a name typed on a Mac is stored decomposed and compares unequal to the same name typed on Windows, which is why a search or a VLOOKUP finds nothing.

🔒 Runs entirely in your browserunicodenormalizenfckorean

Text

Form

Composed. What the web, Windows and every database expect. Start here.

Nothing leaves this tab. Normalisation runs on every keystroke; the four forms are computed together so you can compare them.

This text has 6 split Hangul jamo.

That is the macOS filename form. It renders as normal Korean but compares unequal to the same text typed on Windows, which is why a search or a VLOOKUP finds nothing. NFC puts the syllables back together.

NFC output

All four forms

FormChanges itCode pointsUTF-8 bytesReversible
NFCyes, from code point 02246yes
NFDyes, from code point 73789yes
NFKCyes, from code point 02444no
NFKDyes, from code point 74090no

The byte column is the practical one: decomposed Korean costs nine UTF-8 bytes per syllable where composed costs three, which is how a name passes a length check on one machine and fails it on another.

What NFC changed

  • at 0한글한글6 → 2 code points

How to use it

  1. Paste the text that is not matching

    If it contains split Hangul jamo, a warning says so with the count before you do anything else.

  2. Use NFC unless you know otherwise

    NFC is the composed form the web, Windows and every database expect. NFD is what macOS stores filenames in. NFKC is a search key rather than display text.

  3. Compare all four before deciding

    The table shows which forms change your text at all, what it costs in code points and UTF-8 bytes, and whether the change can be undone.

Common questions

Why does my Korean name not match in Excel?

One side is decomposed and the other composed. They render identically and are different byte sequences, so an exact-match lookup fails. Normalise both sides to NFC and they match.

Is NFKC safe to use everywhere?

No — it is one-way. ㈜ becomes (주), ① becomes 1, A becomes A, and none of that can be turned back. Use it for a search key or a comparison, not for text you are going to store and display.

Will NFC join my ㄱ and ㅏ into 가?

No. Those are compatibility jamo — the standalone letters of a keyboard chart — and they are separate characters, not the conjoining jamo that make up a syllable. Only NFKC touches them, by mapping them onto the conjoining block.

Why does the byte count matter?

Decomposed Korean costs nine UTF-8 bytes per syllable where composed costs three. That is how a name passes a length check on one machine and fails it on another, with no visible difference between them.

Feed it from

Next

These accept what this tool produces, so the result can go straight in.