Unicode Normalization Checker
Check which Unicode normalization forms match the input.
Normalize text to NFC, NFD, NFKC or NFKD and inspect code point changes.
Your text is processed in this browser and is not submitted to UnicodeNow.
Run the tool to compare input and output code point sequences.
The Unicode Normalizer converts text into one of the four standard Unicode normalization forms: NFC, NFD, NFKC or NFKD. It also shows whether the text changed, how many Unicode code points and UTF-8 bytes were present before and after normalization, and which forms already matched the original or resulting text.
This is useful when two strings look identical but compare as different data. A name copied from one system may contain precomposed letters, while the same-looking name copied from another system may contain a base letter plus combining marks. Normalization gives you a documented way to compare or store text consistently.
NFC is the common general-purpose composed form for most text storage and display. It keeps text compact where canonical precomposed characters exist. NFD is the canonical decomposed form and is useful for analysis, accent inspection and some platform-specific workflows. NFKC applies compatibility mappings and can be useful for selected search, matching and identifier workflows. NFKD performs compatibility decomposition and is mainly useful for advanced analysis.
No form is universally safe. Passwords, digital signatures, exact legal records, source data and identifiers with strict external rules need a documented policy before normalization is applied.
The letter é can be represented as one precomposed code point or as a base letter followed by a combining mark. Under NFD, U+00E9 may normalize to U+0065 U+0301. Under NFC, U+0065 U+0301 may normalize to U+00E9.
NFC: é
Code points: U+00E9
NFD: e + ◌́
Code points: U+0065 U+0301
Compatibility normalization can replace compatibility characters with more ordinary equivalents. Full-width A can become A, the ligature fi can become fi, and circled ① can become 1. This can be useful for search indexes or identifier comparison, but it may lose formatting distinctions and may not be reversible exactly.
This tool runs in your browser. Entered text is not sent to UnicodeNow servers, stored in PostgreSQL or Redis, logged, added to analytics events, written to URL query strings, or saved in localStorage or sessionStorage by this page.
Browser-side processing uses JavaScript String.prototype.normalize() with one of the four valid form names. Code point counts use code point iteration rather than UTF-16 code unit length, and UTF-8 byte counts use TextEncoder. Emoji and supplementary-plane characters remain supported during normalization.
Try this input:
é é A fi ① 😀
With NFD selected, the composed é is decomposed into e plus U+0301 COMBINING ACUTE ACCENT. With NFKC selected, compatibility characters such as A, fi and ① change to standard-width or ordinary equivalents. The emoji remains a supplementary Unicode character.
Unicode normalization converts text to a standard Unicode representation such as NFC, NFD, NFKC or NFKD.
NFC uses canonical composition where possible, while NFD decomposes characters into canonical base characters and combining marks.
Use NFKC only under a documented policy for selected search, matching or identifier workflows because it applies compatibility mappings.
No. NFD may separate accents into combining marks, but normalization does not generally delete accents.
Yes. It can change the number of code points and UTF-8 bytes while the rendered text may look the same.
They may contain different code point sequences, such as precomposed é versus e followed by U+0301.
Canonical normalization is often round-trippable for equivalent text, but compatibility forms can lose formatting distinctions and are not always exactly reversible.
Choose and document a consistent policy. NFC is common for general text, but database collation, legacy data and product requirements matter.
No. This tool runs in your browser and does not submit input to UnicodeNow.
Check which Unicode normalization forms match the input.
Inspect each Unicode character, encoding, category, script and normalization form.
Convert text into U+XXXX Unicode code point notation.
Analyze code points, grapheme clusters, bytes, scripts and directionality.
Find zero-width, control, variation, private-use and spacing characters.
Detect Unicode confusables, scripts, skeleton matches and suspicious lookalike patterns.
Compare strings exactly and after Unicode normalization.
Learn NFC, NFD, NFKC and NFKD, canonical and compatibility equivalence, and safe normalization for comparison, search and identifiers.
Compare NFC and NFD Unicode normalization with composed and decomposed examples, byte counts, equality checks and developer guidance.