Unicode Normalizer

Normalize text to NFC, NFD, NFKC or NFKD and compare code points and UTF-8 byte counts before and after conversion.

How to use

  1. Enter the text to normalize.
  2. Choose NFC, NFD, NFKC or NFKD for the intended task.
  3. Compare the original and normalized text, then copy or save TXT.

Original text

Inputs are not saved or sent. Maximum 100,000 UTF-16 code units.

Normalized text

Code points (first 64 only)

Before

After

About this tool

Use this when text looks the same but fails to match. NFC combines e (U+0065) and a combining accent (U+0301) into é (U+00E9). It also composes Japanese kana with combining voicing marks.

NFKC example: ① A ㎏ → 1 A kg. Distinctions in circled digits, width and unit symbols are lost. Check results before applying it to names, identifiers or mathematical text.

This uses the browser’s String.normalize(). The Unicode data version depends on the browser. Output is limited to 1,800,000 UTF-16 code units. Invalid surrogate sequences produce an error.

Unicode UAX #15

Try a use case and check the result

Before matching text, check whether to compose combining marks or also replace compatibility characters.

Trying an example replaces the input and settings and runs the tool above. Restore previous input restores the preceding input and settings, not a saved copy of the calculated result; run again as needed. Existing storage rules apply.

After trying multiple examples, repeat Restore previous input to return to your original input. History is kept only in this page; restore any input you need before closing it.

Compose a combining accent with NFC

Input and settings

Cafe + U+0301 (combining acute accent)
Form: NFC

Expected result

Café
Code points: 5 → 4
UTF-8: 6 → 5 bytes

Convert circled digits and full-width letters with NFKC

Input and settings

① A
Form: NFKC

Expected result

1 A

How to read the result

The NFC example looks almost unchanged while its code-point and byte counts shrink. NFKC removes the circle around ① and the width distinction of A. Unchanged means the text is already normalized in the selected form.

Scope and limits

NFC/NFD handle canonical equivalence; NFKC/NFKD also handle compatibility equivalence. This does not correct spelling, unify every look-alike character or remove all invisible characters. Input is limited to 100,000 UTF-16 code units; invalid surrogates are rejected. The code-point preview shows at most 64 points.

Verification: the existing normalize function checks NFC composition, NFKC compatibility conversion, point counts and UTF-8 byte counts; browser outputs are compared with these expectations.

Continue with the next task

Frequently asked questions

Which form should I choose?

NFC composes characters where possible; NFD decomposes them. NFKC and NFKD also change compatibility forms such as circled digits and full-width characters. Follow the format required by the destination.

Can I recover the original spelling?

Compatibility normalization removes distinctions, for example changing ① to 1. The output cannot recover the original representation. The input remains in its own field; keep a separate copy when needed.

Does this fix encodings or spelling?

No. This does not convert encodings such as Shift_JIS, fix spelling, or unify every visually similar character. Code-point counts are also different from visible character counts.

Related tools

Inputs and storage

Keep any content you need before clearing. This tool does not autosave inputs or results. Reloading or closing the page, clearing inputs or resetting may discard your work.

Favorites and language preferences are stored separately and may be lost when site data is cleared. Tool resets and site-data deletion do not delete files already downloaded to your device.

Explore tools & games

All 120 tools · 16 games

All 120 tools · 16 games

Text & writing 26

Calculators & converters 22

Date & time 12

Images & PDF 26

Data & web 28

Random & handy 6

Games 16