gptcleanuppro.com / unicode-normalizer
Ready · local0w
Works with text copied from
ChatGPTClaudeGeminiGrokCopilotPerplexity
normalization forms
4
bytes sent to a server
0
length or run limit
None

The tool

A normalizer covering all four standard Unicode forms

The same visible character frequently has more than one valid byte-level representation in Unicode. This tool rewrites text into any of the four standard normalization forms, NFC, NFD, NFKC or NFKD, so that strings which are visually identical also become identical at the byte level.

Normalization runs entirely client-side, in JavaScript, within your browser. There is no upload and no server round trip, and accordingly no run limit.

How it works

How to normalize Unicode text in three steps

One decision: which form the task requires.

Step 1
Paste the text into the input field.
Step 2
Select a form: NFC, NFD, NFKC or NFKD.
Step 3
Read the normalized result.

Root cause

Why visually identical strings can fail an exact comparison

Consider é. It can be represented as a single precomposed codepoint, or as two separate codepoints, a base e followed by a combining acute accent, both rendering identically. Neither representation is incorrect. A byte-level comparison between the two, however, reports them as distinct strings.

This produces a genuinely common class of bug: two systems that each render 'é' correctly can still fail to recognize the same input entered into both, because one system encoded it as a single character and the other decomposed it into a base letter plus a mark, with no step reconciling the two as equivalent.

The four forms, defined

NFC, NFD, NFKC and NFKD

Unicode Standard Annex 15 defines four normalization forms, and this tool converts between all of them without restriction.

NFC
Canonical composition: combines a base letter and its marks into a single precomposed character wherever a precomposed form exists. The default, and the form most existing web text already uses.
NFD
Canonical decomposition: splits every precomposed character into a base letter plus its separate combining marks.
NFKC
Compatibility composition: performs canonical composition, then also folds compatibility variants, such as ligatures and fullwidth forms, into their ordinary equivalents.
NFKD
Compatibility decomposition: performs canonical decomposition, then also folds compatibility variants into their ordinary equivalents, without recomposing.

A load-bearing distinction

Canonical equivalence versus compatibility equivalence

NFC and NFD only reorganize how a character carrying combining marks is encoded; neither alters the visual appearance of the text. NFKC and NFKD extend further, folding together characters that are visually distinct yet considered compatible variants of an underlying letter: a fi ligature, one glyph combining f and i, expands into the two separate letters, and fullwidth Latin characters, used in certain East Asian typesetting conventions, fold down to their ordinary-width equivalents.

That additional folding is genuinely lossy: NFKC and NFKD can alter the visible text, collapsing a stylistic distinction the source may have relied on deliberately. NFC or NFD is the correct choice for equality checking without altering appearance; NFKC or NFKD is correct when compatibility variants specifically need to be folded together, most commonly for search or security matching.

Consequences

What un-normalized text breaks in production systems

A username stored under one encoding but submitted at login under the other fails to authenticate, despite both being visually identical. A search index built from mixed normalization forms fails to surface results that are, character for character visually, exactly what was queried. A deduplication process double-counts a value purely because two copies happen to use different encodings of the same accented letter.

Security-conscious systems apply compatibility normalization specifically to detect look-alike text used to disguise a domain name or a username, since visually confusable strings frequently normalize to an identical result once compatibility folding is applied.

Who it's for

Who uses a Unicode normalizer, and when

Engineers debug a string comparison, a search match, or a deduplication step failing silently on text that appears identical to a human reviewer. Teams building systems that accept text from a mix of keyboards, operating systems and input methods, any of which can encode the same visible character differently, normalize on ingestion for exactly this reason.

It is also used in security review, distinguishing whether two visually similar strings are the same text in disguise, or genuinely different characters that merely resemble one another.

FAQ

Unicode normalizer, answered precisely

All answered in full, nothing to click open.

How do I normalize Unicode text?

Paste it into the input field, select a form, and the normalized result is returned.

Is this tool free?

Yes. No length cap and no run limit, because processing happens on your own device rather than a metered server.

Is my text uploaded anywhere?

Not by this tool. Normalization runs entirely client-side. Other tools on this site that rewrite or generate text send content to a server, stated on those pages.

What distinguishes NFC from NFD?

NFC combines a base letter and its accent into a single precomposed character wherever possible. NFD performs the reverse, decomposing a precomposed character into base plus separate marks.

Which form is the recommended default?

NFC. It is the form most existing web text already uses, and is appropriate for consistent, comparable text without altering appearance.

How does NFKC differ from NFC?

NFKC performs everything NFC does, plus folds compatibility variants, such as ligatures and fullwidth characters, into their ordinary equivalents, which can alter appearance.

Why do two visually identical strings fail to match in code?

They likely use different normalization forms: one a single precomposed character, the other a base letter plus a separate combining mark. Normalizing both to the same form resolves the mismatch.

Does normalization alter the visible text?

NFC and NFD alter only the encoding, not the appearance. NFKC and NFKD can alter appearance, since they fold ligatures and other compatibility variants.

What is a ligature in this context?

A single character merging two letters into one glyph, such as fi. NFKC and NFKD expand it into separate letters; NFC and NFD leave it unchanged.

What are fullwidth characters?

Latin letters rendered with wide, East Asian-style spacing, used in certain CJK typesetting conventions. NFKC and NFKD fold them to their ordinary-width equivalents.

Does this apply to accented letters such as é or ñ?

Yes, this is the central case addressed. NFC produces the single-character form; NFD produces the base-letter-plus-mark form.

Can normalization detect a look-alike domain name?

Compatibility normalization can reveal when two visually confusable strings reduce to an identical result, which is why security tooling applies it.

Does it work on mobile devices?

Yes, the layout adapts and normalization runs identically on mobile.

Will this resolve a search index missing expected results?

If the cause is mismatched normalization between indexed text and the query, yes; normalizing both to the same form resolves that specific failure.

Is there a batch mode or an API?

Not currently. This is a single-document, browser-based tool.

Is it suitable for confidential text?

Yes, nothing is transmitted or retained by this tool.

Does normalization remove accents?

No, normalization reorganizes encoding without deleting anything visible. For removing accents, use the accent remover instead.

What distinguishes NFD from NFKD?

NFD performs canonical decomposition only. NFKD performs the same decomposition, plus folds compatibility variants such as ligatures into their plain form.

Why does a database show apparent duplicate rows for one value?

Those rows likely use different normalization forms of the same visible text. Normalizing incoming data consistently on ingestion prevents this.

Is NFC the most widely adopted form?

Yes, most web content and software defaults to NFC, making it the appropriate starting point absent a specific reason for another form.

Normalize text, nothing sent anywhere.

All four forms, computed locally, with no run limit and no signup.

Open the normalizer