AI Tools Free

Unicode Normalizer

Normalize pasted Unicode text with NFC, NFD, NFKC, or NFKD. Review whether the representation changed and copy the selected-form output.

Free to useNo sign-upRuns in your browser
Enter your details

Update the inputs to see your result.

Your result
Enter your details

Result will appear here

How Unicode Normalizer works

The selected Unicode form rewrites text representation through String.normalize.

The selected form is passed to JavaScript String.normalize. The returned text is compared with the source to show whether it changed, and its Unicode code points are counted for the displayed result.

Compatibility forms (NFKC/NFKD) may change visual or semantic distinctions. Original text is not uploaded.

Reference: MDN: String.normalize().

Conceptual Unicode representations showing a composed glyph and separate base-and-mark sequence.
Normalization changes representation; it does not automatically remove accents.

How to use Unicode Normalizer

Choose a normalization form based on whether compatibility distinctions should be preserved.

Paste text and choose the form

Paste the source text and select NFC, NFD, NFKC, or NFKD. Keep the original where exact distinctions matter. Canonical forms handle equivalent representation, while compatibility forms can also change distinctions in the source.

Text to normalize
Unicode Normalizer native input panel with the actual Text to normalize, Normalization form settings used for this example.
Configure Text to normalize, Normalization form; select Normalize text.

Normalize and inspect the output

Select Normalize text and review the returned text. The page applies JavaScript String.normalize with the selected form. Composed and decomposed sequences can look similar while containing different code points, so inspect relevant terms rather than appearance alone.

2 code points
Unicode Normalizer actual result panel showing 2 code points.
Submitted result: 2 code points. Normalization form: NFD.

Check status and copy deliberately

Read Normalization form, Changed, and the code-point count, then use Copy result if the output fits the destination. Normalization does not automatically strip accents. A No changed flag applies only to this input and the selected form.

Output and export
Unicode Normalizer actual output and export region and result note after submitting the pictured settings.
Review the actual Unicode Normalizer output and visible Copy result controls. Read the result note.

Compare NFC, NFD, NFKC, and NFKD text normalization

Choose the representation goal before transforming names, identifiers or content.

Compare equivalent accent sequences

An e followed by a combining acute accent can become the single composed character é under NFC. The visible word may look the same while the code point count changes. This example shows why representation and visible characters need separate checks.

Source text lines represented as large readable document shapes.
Work with your source text. Concept illustration.

Inspect decomposed characters

Use NFD when you want to see a canonical decomposed representation of applicable characters. It preserves combining marks instead of removing them. For deliberate accent removal, use the separate Remove Accents tool rather than assuming decomposition alone will drop the accents.

Text documents with highlighted lines for comparison and review.
Compare and review text. Concept illustration.

Review a compatibility transformation

Test a small representative sample before using NFKC or NFKD on a larger passage. Compatibility normalization can change visual or semantic distinctions. Keep the original if exact symbols or identifiers matter, and inspect the resulting text in its intended use.

Text prepared for reuse in another document.
Prepare text for the next task. Concept illustration.

Unicode normalization forms and code-point counts

Read canonical and compatibility changes with their code-point differences.

The result counts Unicode code points in the normalized string. A code point count is not a byte length or a guaranteed count of visible characters. Combining marks can contribute to that count without appearing as separate letters.

NFC and NFD use canonical normalization, while NFKC and NFKD include compatibility processing. The selected form controls the transformation. The page does not translate, transliterate or assess whether the result retains a passage's intended meaning.

A text result and its source shown for careful comparison.
Read the output carefully. Concept illustration.

Check transformations before replacing source text

Review the selected form before using normalized text in an exact-match destination.

An unchanged output can be correct when the text already uses the selected form. Check the Changed line instead of assuming the button failed. A blank text field needs content before the normalization operation can run.

Compatibility forms can collapse distinctions that matter in names or technical notation. Review those uses explicitly. If Copy result is unavailable, select the result text manually; the page does not provide a file download or stored revision history.

Text characters and line boundaries represented in a review illustration.
Check characters and line breaks. Concept illustration.

Use Unicode Normalizer

Normalize pasted Unicode text with NFC, NFD, NFKC, or NFKD.

Normalize text

Unicode Normalizer: common questions

Answers about using Unicode Normalizer and understanding its results.

What is the difference between NFC and NFD?

NFC composes canonical sequences where possible; NFD decomposes them.

Does this strip accents?

No. Normalization changes representation, while the separate accent-removal tool removes combining marks.

Why can normalization change the code-point count?

Normalization can compose or decompose character sequences. The output counts Unicode code points, so visually similar text can have a different count; it is not a count of bytes or visible characters.

Can compatibility forms change distinctions?

Yes. NFKC and NFKD apply compatibility mappings as well as normalization. Review the output before using it where exact distinctions matter.