Unicode Text Normalizer
Normalize Unicode text to NFC, NFD, NFKC or NFKD, compare code points before and after, and fix strings that look identical but don't match.
What is the Unicode Text Normalizer?
The Unicode Text Normalizer applies one of the four standard Unicode normalization forms — NFC, NFD, NFKC or NFKD — to your text and shows you exactly what changed at the code-point level.
- All four forms: NFC, NFD, NFKC and NFKD
- Reports code-point counts before and after
- Shows a code-point listing so invisible differences become visible
- Counts how many positions changed
- 100% local processing — nothing leaves your browser
How to use the Unicode Text Normalizer
- 1
Paste the text you want to normalize.
- 2
Pick a normalization form: NFC, NFD, NFKC or NFKD.
- 3
Compare the before/after code points and the change count.
- 4
Copy or download the normalized text.
About the Unicode Text Normalizer
The Unicode Text Normalizer applies one of the four standard Unicode normalization forms — NFC, NFD, NFKC or NFKD — to your text and shows you exactly what changed at the code-point level. The same visible character can be stored in different ways (é as one code point, or e plus a combining accent), which breaks string comparison, search and deduplication.
It is built for developers chasing “identical” strings that fail equality checks, data cleaners unifying text from mixed sources, and anyone hit by lookalike characters from copy-pasted documents. The tool reports how many characters changed and lists the code points before and after so you can see the difference that your eyes cannot.
Normalization runs 100% locally in your browser using the standard String.normalize function — your text is never uploaded.
Frequently asked questions
What is Unicode normalization?
It rewrites text into a canonical form so that characters with multiple possible encodings are stored consistently. For example é can be U+00E9 or U+0065 + U+0301; NFC composes it into one code point, NFD decomposes it into two.
Which normalization form should I use?
NFC is the safe default and what the web generally expects. NFD is useful before stripping accents. NFKC and NFKD additionally fold compatibility characters — like fi ligatures, full-width letters and superscripts — into their plain equivalents, which changes appearance and should be used deliberately.
Why do two identical-looking strings not match?
Because they can be encoded differently under the hood — composed vs decomposed accents, full-width vs half-width forms, or lookalike compatibility characters. Normalizing both strings to the same form usually makes them compare equal.
Does NFKC change how my text looks?
It can. Compatibility folding turns things like ² into 2, fi into fi and full-width ABC into ABC. If you only want accent composition without appearance changes, use NFC instead.
Is my text processed locally?
Yes. The tool uses your browser's built-in String.normalize implementation, so nothing is uploaded and it works offline.
Related tools
Text to Unicode Converter
Convert text to Unicode escapes and back: JavaScript \uXXXX, U+ code points or HTML &#x entities. Emoji-safe, bidirectional, runs in your browser.
Invisible Character Remover
Remove invisible characters like zero-width spaces, joiners, BOMs, non-breaking spaces and control codes from text. See how many and which types were stripped.
Text Compare
Compare two texts online free and highlight every difference. A private text comparison tool that finds matches and changes right in your browser.
Emoji Remover
Remove all emoji from text in one click — smileys, flags, skin tones, ZWJ sequences and hidden variation selectors — with optional whitespace cleanup.