Unicode Normalizer (NFC, NFD, NFKC, NFKD)
Normalize text to NFC, NFD, NFKC or NFKD and see the code points change. Fixes decomposed Korean (자소 분리) from macOS file names and full-width characters.
Decomposed Hangul jamo (as macOS stores file names) were joined back into syllables, so 자소 분리 text such as ㅎㅏㄴㄱㅡㄹ displays as 한글 again.
| Character | Input | NFC | NFD | NFKC (if different) |
|---|---|---|---|---|
| é | U+0065 U+0301 | U+00E9 | U+0065 U+0301 | — |
| 한 | U+1112 U+1161 U+11AB | U+D55C | U+1112 U+1161 U+11AB | — |
| 글 | U+1100 U+1173 U+11AF | U+AE00 | U+1100 U+1173 U+11AF | — |
| fi | U+FB01 | U+FB01 | U+FB01 | fi (U+0066 U+0069) |
| ① | U+2460 | U+2460 | U+2460 | 1 (U+0031) |
| A | U+FF21 | U+FF21 | U+FF21 | A (U+0041) |
| B | U+FF22 | U+FF22 | U+FF22 | B (U+0042) |
| C | U+FF23 | U+FF23 | U+FF23 | C (U+0043) |
The same visible text can be stored as different code points: "é" is either one character (U+00E9) or "e" plus a combining accent, and the Korean syllable 한 is either U+D55C or three jamo. When two systems disagree, searches fail, duplicates appear and file names from a Mac show up on Windows as separated letters (자소 분리). This tool converts text to any of the four Unicode normalization forms and shows exactly which code points changed.
How to use this tool
- Paste the text, file names or data that misbehave.
- Choose NFC to compose (the right choice for the web, Windows and databases) or NFD to decompose.
- Use NFKC or NFKD when you also want to fold full-width letters, ligatures and circled numbers for searching.
- Copy the result and check the code-point table.
Formula
NFD = canonical decomposition; NFC = NFD followed by canonical composition. NFKD and NFKC use compatibility decomposition instead, which also maps characters such as fi, ①, ² and A to their plain forms.
Hangul syllables decompose algorithmically: S = 0xAC00 + (L × 21 + V) × 28 + T, so 한 (U+D55C) becomes ᄒ U+1112 + ᅡ U+1161 + ᆫ U+11AB. Normalization never changes plain ASCII. The conversion uses your browser’s built-in Unicode tables (String.prototype.normalize); normalization of characters that already exist is frozen by Unicode’s stability policy, so results agree across versions.
Example
"e" + U+0301 (combining acute) becomes U+00E9 in NFC — 2 code points become 1. 한 in NFD is U+1112 U+1161 U+11AB, three code points and 9 UTF-8 bytes instead of 3. NFKC turns "fi ① A" into "fi 1 A".
Frequently asked questions
Why do Korean file names from a Mac look broken on Windows?
macOS (HFS+, and many apps on APFS) stores names in decomposed form, so 한글 is saved as six jamo. Windows expects composed text and shows the pieces separately. Converting the names to NFC fixes it; zip tools that do this on extraction also help.
Which form should I store?
NFC. It is the W3C recommendation for the web, matches what keyboards produce on most systems and is the most compact. Normalize input once when you receive it.
Is NFKC safe for user names?
It is useful for comparing and searching (it folds look-alike compatibility characters), but it loses information, so store the original and compare the NFKC forms.
Sources
Last updated:
Page address with these inputs: https://kakao.mobile/tools/unicode-normalizer-tool/
Cite or embed this tool
kakaoCalc. (2026, November 8). Unicode Normalizer (NFC, NFD, NFKC, NFKD). https://kakao.mobile/tools/unicode-normalizer-tool/
“Unicode Normalizer (NFC, NFD, NFKC, NFKD).” kakaoCalc, 8 Nov. 2026, kakao.mobile/tools/unicode-normalizer-tool/.
Paste this code into your page. The widget runs in your visitors' browsers, shows no ads and keeps a link back to this page. Embedding terms