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
Normalize text to NFC, NFD, NFKC or NFKD and compare code points and UTF-8 byte counts before and after conversion.
Inputs are not saved or sent. Maximum 100,000 UTF-16 code units.
Before
After
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.
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.
Cafe + U+0301 (combining acute accent) Form: NFC
Café Code points: 5 → 4 UTF-8: 6 → 5 bytes
① A Form: NFKC
1 A
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.
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.
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.
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.
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.
Share only the tool name and public URL. Your input and results are not included.
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.