Unicode Confusable Checker

Compare Unicode skeletons and inspect look-alike characters without changing your input.

Stays in your browserFiles and text are processed in this tab.
Unicode Confusable Checker
Enter text or try the example.

How it works

Different characters can look alike: Latin a and Cyrillic а are distinct. Unicode skeletons map such characters to a common comparison form; even ASCII m can map to rn. A skeleton is a comparison key, not a recommended spelling.

What you can do

Inspect occurrences and UTF-16 offsets, compare a second string, and export a complete JSON report. The readable suggestion keeps ordinary ASCII and emoji joiners; the separate skeleton view follows the pinned Unicode confusables mapping and NFD normalization. Mirror and upside-down use approximate glyph substitutions and reverse grapheme order. Emoji maps supported Latin letters/digits; other text is preserved. Review variants use Unicode confusables and keep the same case-sensitive skeleton; they may repeat and are not a security assessment. Maximum100variants and250000output units.

How to use it

  1. Paste a string and optionally a second one, such as paypal and pаypal. Choose suggestion, skeleton or full report.
  2. Run and inspect the original code points and offsets in the report. Matching is case-sensitive. Copy only after reviewing any suggested substitutions.

Errors and limits

The report uses Unicode confusables 18.0.0. It does not implement a complete UTS #39 identifier profile, domain registration policy, script restriction system or security assessment. Invisible characters are reported, not silently deleted.

Up to 10,000 UTF-16 input units, 250,000 output units, a 1 MiB UTF-8 file and 20 seconds per run. Reports use machine-readable JSON field names.

Mirror and upside-down use approximate glyph substitutions and reverse grapheme order. Emoji maps supported Latin letters/digits; other text is preserved. Review variants use Unicode confusables and keep the same case-sensitive skeleton; they may repeat and are not a security assessment. Maximum100variants and250000output units.

Frequently asked questions

Does a different skeleton mean a string is safe?

No. Fonts, context, bidirectional text and application rules also matter. Matching skeletons indicate a comparison worth reviewing; different skeletons cannot certify an identifier or link as safe.

Stays in your browser?

Files and text are processed in this tab.

Related tools

Unicode confusables 18.0.0 · Unicode License v3