Unicode Normalizer

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.

Processed locally in your browser
Normalization settings

Choose the Unicode normalization form to apply to the input. NFC is commonly used for general text storage and display.

Code point changes

Run the tool to compare input and output code point sequences.

Input sequence

Output sequence

What this tool does

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.

Which normalization form should I use?

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.

NFC vs NFD example

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

NFKC and NFKD warning

Compatibility normalization can replace compatibility characters with more ordinary equivalents. Full-width can become A, the ligature 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.

Common use cases

Privacy

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.

Technical details

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.

Example

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 , and change to standard-width or ordinary equivalents. The emoji remains a supplementary Unicode character.

Frequently asked questions

What is Unicode normalization?

Unicode normalization converts text to a standard Unicode representation such as NFC, NFD, NFKC or NFKD.

What is the difference between NFC and NFD?

NFC uses canonical composition where possible, while NFD decomposes characters into canonical base characters and combining marks.

When should I use NFKC?

Use NFKC only under a documented policy for selected search, matching or identifier workflows because it applies compatibility mappings.

Does Unicode normalization remove accents?

No. NFD may separate accents into combining marks, but normalization does not generally delete accents.

Can normalization change string length?

Yes. It can change the number of code points and UTF-8 bytes while the rendered text may look the same.

Why can identical-looking strings compare as different?

They may contain different code point sequences, such as precomposed é versus e followed by U+0301.

Is Unicode normalization reversible?

Canonical normalization is often round-trippable for equivalent text, but compatibility forms can lose formatting distinctions and are not always exactly reversible.

Which normalization form should databases use?

Choose and document a consistent policy. NFC is common for general text, but database collation, legacy data and product requirements matter.

Is my text uploaded or stored?

No. This tool runs in your browser and does not submit input to UnicodeNow.

Related tools

Unicode Character Inspector

Inspect each Unicode character, encoding, category, script and normalization form.

UnicodeProcessed locally

Unicode Sequence Analyzer

Analyze code points, grapheme clusters, bytes, scripts and directionality.

UnicodeProcessed locally

Unicode Text Compare

Compare strings exactly and after Unicode normalization.

Text ComparisonProcessed locally

Related guides

Unicode Normalization Explained

Learn NFC, NFD, NFKC and NFKD, canonical and compatibility equivalence, and safe normalization for comparison, search and identifiers.

NFC vs NFD

Compare NFC and NFD Unicode normalization with composed and decomposed examples, byte counts, equality checks and developer guidance.