Skip to main content

Normalize confusable characters to safe text

Normalizing confusables replaces every look-alike character with the ordinary character it imitates, so two strings that look the same also compare as equal. Do it before comparing usernames, matching blocklists, or deduplicating identifiers.

Worked example

Input
Cоnfig file: аdmin2, Noёl, café
Scripts found
Latin (Latn), Cyrillic (Cyrl)
Characters flagged
7
IndexCharacterCode pointScriptReplacementRule
0CU+FF23LatinCNFKC normalization
1оU+043ECyrillicoConfusable map
7fiU+FB01LatinfiNFKC normalization
10:U+FF1ACommon:Confusable map
12аU+0430CyrillicaConfusable map
172U+FF12Common2Confusable map
22ёU+0451CyrillicëConfusable map
Preserve Readable Unicode
Config file: admin2, Noël, café
Strict ASCII Fallback
Config file: admin2, Noel, café

How it works

  • Known look-alikes are replaced from the bundled map first. Characters outside the map are normalized with NFKC, which folds fullwidth forms, ligatures, and other compatibility characters into their standard equivalents.
  • Preserve Readable Unicode keeps an accented letter where the map defines one, such as Cyrillic ё → ë. Strict ASCII Fallback uses the plain ASCII letter instead (ё → e).
  • Letters that are neither in the map nor changed by NFKC are kept, so café keeps its accent in both modes. Normalized text is a comparison key, not a security verdict: store the original as well and review flagged characters.

Conversion is best-effort: mapped confusables and NFKC folding are deterministic, but some legitimate Unicode will not be flagged.

Your text

Paste or type — results update as you type (lightly debounced for long input).

30 characters scanned
7 suspicious
Strict ASCII Fallback
Conversion mode

Strict ASCII mode aggressively replaces known lookalikes with ASCII. It can change legitimate non-Latin text when a character is in the bundled map or NFKC-folded.

Original (suspicious characters marked)

Suspicious characters in the original view are underlined and labeled “susp.” in addition to highlight color.

suspicious character Csuspicious character оnfig suspicious character filesuspicious character : suspicious character аdminsuspicious character 2, Nosuspicious character ёl, café
Cleaned output
Character analysis
Index (0-based)OriginalReplacementCode pointReason
0CCU+FF23NFKC normalization changed this character (compatibility or width folding).
1оoU+043ENon-ASCII confusable mapped to a safer Latin ASCII equivalent.
2nnU+006ENot flagged as a confusable or compatibility character.
3ffU+0066Not flagged as a confusable or compatibility character.
4iiU+0069Not flagged as a confusable or compatibility character.
5ggU+0067Not flagged as a confusable or compatibility character.
6 U+0020Not flagged as a confusable or compatibility character.
7fifiU+FB01NFKC normalization changed this character (compatibility or width folding).
8llU+006CNot flagged as a confusable or compatibility character.
9eeU+0065Not flagged as a confusable or compatibility character.
10::U+FF1ANon-ASCII confusable mapped to a safer Latin ASCII equivalent.
11 U+0020Not flagged as a confusable or compatibility character.
12аaU+0430Non-ASCII confusable mapped to a safer Latin ASCII equivalent.
13ddU+0064Not flagged as a confusable or compatibility character.
14mmU+006DNot flagged as a confusable or compatibility character.
15iiU+0069Not flagged as a confusable or compatibility character.
16nnU+006ENot flagged as a confusable or compatibility character.
1722U+FF12Non-ASCII confusable mapped to a safer Latin ASCII equivalent.
18,,U+002CNot flagged as a confusable or compatibility character.
19 U+0020Not flagged as a confusable or compatibility character.
20NNU+004ENot flagged as a confusable or compatibility character.
21ooU+006FNot flagged as a confusable or compatibility character.
22ёeU+0451Non-ASCII confusable mapped to a safer Latin ASCII equivalent.
23llU+006CNot flagged as a confusable or compatibility character.
24,,U+002CNot flagged as a confusable or compatibility character.
25 U+0020Not flagged as a confusable or compatibility character.
26ccU+0063Not flagged as a confusable or compatibility character.
27aaU+0061Not flagged as a confusable or compatibility character.
28ffU+0066Not flagged as a confusable or compatibility character.
29ééU+00E9Not flagged as a confusable or compatibility character.

More guides