The short version
- 1Canonical equivalence does not imply identical bytes.
- 2NFC preserves more distinctions than NFKC.
- 3Normalize for a named purpose and retain originals when necessary.
Matching appearance can hide different storage
The visible letter é can be encoded as U+00E9 or as U+0065 followed by U+0301. Unicode defines those sequences as canonically equivalent, but a byte-for-byte comparison still sees different data.
Normalization applies defined decomposition and composition rules so systems can compare equivalent representations consistently. It does not translate, spell-check, or make every similar-looking character the same.
Choose among four forms
NFD canonically decomposes text; NFC decomposes and then composes where Unicode defines a composite. NFKD and NFKC also apply compatibility mappings that can erase distinctions such as width, circled presentation, or some typographic forms.
NFC is a common interchange choice. Compatibility normalization can be useful for search keys and controlled identifiers, but it may change text that an author intended to preserve. Keep the original when presentation distinctions matter.
Normalize at a deliberate boundary
Pick and document a boundary—such as input ingestion or comparison-key generation—rather than repeatedly normalizing unknown data. Tests should include combining marks, non-Latin scripts, emoji sequences, and characters with compatibility mappings.
The normalization checker runs in the browser and exposes all four results. Use it to observe changes, not as permission to rewrite stored content without understanding the consequence.
Follow the ideas that meet here
Unicode Confusable Characters and Identifier Security
Continue from equivalence rules to identifier defenses. You can see why normalization does not remove every lookalike.
Zero-Width Unicode Characters: Joiners, Spaces, and Hidden Text
Hidden controls can matter without being normalization errors. You can inspect invisible characters before transforming a string.
Put this guide to work
Continue with the collections below. Their copy controls, formal names, and character records connect the explanation to inspectable data.
Sources and review notes
This article was written for UnicodeSymbols.com and reviewed against the references below on September 3, 2026. The sources establish technical properties; practical recommendations are clearly presented as editorial guidance.
