Normalization Checker

Normalization Checker is a browser utility that compares text across the four Unicode normalization forms. Compare all four standard normalization forms side by side, see which transformations alter your text, and choose a boundary policy without confusing equivalence with visual sameness.

Canonical formsNFC + NFD
Compatibility formsNFKC + NFKD
Compared locallyFour outputs

Analyze your own text

Private processingYour input remains in this browser tab.
Try a sample:
Maximum 2,000 characters · no upload

Enter text or choose a sample to generate a detailed report.

Normalization in one minute

Unicode permits some strings with different code-point sequences to count as equivalent. Normalization calculates a stable representative for a selected equivalence model.

  • NFC composes where the standard defines a canonical composite.
  • NFD expands characters through canonical decomposition.
  • NFKC composes after applying broader compatibility mappings.
  • NFKD decomposes canonically and also replaces compatibility variants.

NFC, NFD, NFKC, and NFKD compared

The letter C means composition; D means decomposition. The K marks a compatibility transformation, which can discard distinctions that the canonical pair retains.

FormEquivalence basisTypical shapeAppropriate useRisk to review
NFCCanonicalComposed when possibleGeneral text storage and exchangeDoes not merge compatibility variants
NFDCanonicalDecomposed sequenceProcesses that operate on constituent marksOften uses more code points
NFKCCompatibility + canonicalCompatibility-folded, then composedControlled matching and identifier preparationMay erase formatting semantics
NFKDCompatibility + canonicalCompatibility-folded and decomposedSpecialized analysis pipelinesProduces the broadest transformation

Where the four forms diverge

The right form follows the product requirement. A transformation that is helpful for search can be destructive in archival text.

Input kindCanonical resultCompatibility result
é versus e + combining acuteNFC aligns them as é; NFD aligns them as e plus the markThe compatibility pair reaches equivalent versions too
Fullwidth ANFC and NFD retain the fullwidth characterNFKC and NFKD map it to ordinary A
Ligature ffiCanonical forms preserve the ligature code pointCompatibility forms expand it to ffi
Superscript ²Canonical forms keep the superscriptCompatibility forms map it to 2

How to set a normalization policy

Follow the sequence from evidence to policy. Each stage guards against a different class of Unicode mistake.

  1. Locate the boundary

    Name the precise operation—storage, comparison, search indexing, identifier creation, or display—rather than normalizing everywhere.

  2. Choose equivalence

    Use canonical equivalence when typography must survive. Consider compatibility equivalence only when the removed distinction is irrelevant.

  3. Test real scripts

    Exercise accented Latin text, combining-mark scripts, Hangul, emoji sequences, and any legacy data your product actually receives.

  4. Record the contract

    Document the chosen form beside validation and database rules so every producer applies the same transformation once.

Questions people ask about normalization checker

Which form should a website normally use?

NFC is a common interchange choice because it preserves canonical meaning and favors composed sequences. The correct policy still depends on your data contract and should be tested with the scripts you support.

Will normalization make confusable letters identical?

Not in general. Latin a and Cyrillic а are different characters with no canonical equivalence. Confusable detection is a separate security operation.

Can normalization break emoji?

Conforming normalization preserves the identities required by standard emoji sequences, but application code can still damage a sequence by filtering joiners, selectors, tags, or modifiers separately.

Why do two equal-looking results show different U+ values?

Fonts can draw different characters alike, and some combining sequences resemble precomposed characters without being canonically equivalent. Code-point output reveals the distinction that glyphs hide.

Move to the next diagnostic

Standards behind this tool

The browser output is designed as a practical diagnostic, while normative definitions belong to the standards publishers below.

CopiedSaved to clipboard