Unicode Normalizer

Normalize text into NFC, NFD, NFKC, or NFKD Unicode forms.

Unicode text can encode the same visible characters in multiple ways, causing string comparison failures, search misses, and database duplicates. This normaliser converts text to a consistent Unicode form — NFC, NFD, NFKC, or NFKD — resolving these invisible differences.

Your result will appear here...

How to Normalize Unicode Text

  1. Enter or paste your text — paste the text that may have inconsistent Unicode encoding.
  2. Choose a normalization form — select NFC (most common), NFD, NFKC, or NFKD depending on your use case.
  3. Click Normalize — the tool applies the selected normalization form to your text.
  4. Copy the result — use the normalized text in your application, database, or code.

Frequently Asked Questions

What is Unicode normalization? ▼
Unicode allows the same visual character to be represented in multiple ways. For example, "é" can be a single code point (U+00E9) or two code points (e + combining accent U+0301). Normalization converts text to a consistent representation so that equivalent characters are stored identically.
What is the difference between NFC and NFD? ▼
NFC (Canonical Decomposition followed by Canonical Composition) combines characters into precomposed forms — "é" becomes a single code point. NFD (Canonical Decomposition) does the opposite — it breaks characters into base + combining marks. NFC is the web standard and most widely used form.
What are NFKC and NFKD? ▼
NFKC and NFKD apply "compatibility" decomposition in addition to canonical normalization. This converts visually similar but semantically different characters: fi (ligature) → fi, ² (superscript) → 2, ½ → 1⁄2. Use these when you need to match text regardless of stylistic variations.
When should I normalize Unicode? ▼
Normalize when: comparing strings for equality (search, deduplication), storing text in databases (consistency), processing user input (usernames, emails), indexing for search engines, or when text copied from different sources looks the same but doesn't match programmatically.
Which normalization form should I use? ▼
Use NFC for most applications — it is the W3C recommendation for the web and the most compact form. Use NFD if you need to manipulate individual combining marks. Use NFKC for search indexing and username validation. Use NFKD for the most aggressive decomposition.
Is my text stored or sent anywhere? ▼
No. All normalization happens in your browser using JavaScript's built-in String.prototype.normalize() method. Nothing is transmitted to any server.