Skip to content
Input
Text
Unicode
17.0
Runtime
Browser

Compare two strings with an advisory confusable skeleton

Surface exact equality and a conservative high-risk lookalike skeleton for human review.

Local processingNo sign-upNo fetch or upload

Input

Compare short identifiers or labels; font rendering is outside this check.

Local

Confusable comparison report

Submit the example or replace it with your own text. The result appears here without a network request.

What this tool proves

Explicit Unicode interpretation

Different scripts can contain characters that resemble Latin letters in common fonts. Skeleton equality is evidence for review, not proof of malicious intent or safe rendering.

Confusable comparison is advisory, bounded, and never a safety verdict

Different scripts can contain characters that resemble Latin letters in common fonts. Skeleton equality is evidence for review, not proof of malicious intent or safe rendering.

The bounded comparator applies NFKD plus default JavaScript lowercasing, removes combining marks, and maps a documented curated set of common Greek and Cyrillic lookalikes. It explicitly does not claim full Unicode case folding or full UTS #39 coverage.

Unicode text stays scalar, private, and bounded

Every operation rejects lone UTF-16 surrogates before processing. Inputs are capped at 256 KiB, report operations at 20,000 code points, and output at 1 MiB.

The work starts only after submission and stays in the current browser tab. Tool Swim does not upload text, call the developer API, retain results, or save presets.

Primary references

Questions and answers

Related Unicode tools