Homoglyph libraries compared.
The same sentence through each library.
Origina folds
0
What reports actually use
UTS39 raw folds
2
unicode-confusables, unfiltered
ASCII traps
2
m→rn, I→l, 0→O, 1→l
Libraries surveyed
6
JS, Rust, ICU, Python
Same sentence, four folders
Origina (wired)
0 foldsBeauchamp and Childress describe four clusters of moral principle that structure everyday nursing decisions.
Hand map for nursing/IDN, NFKC, digit-in-word, then prose-safe UTS39 for anything still unmapped. Does not rewrite Beauchamp.
UTS39, prose-safe
0 foldsBeauchamp and Childress describe four clusters of moral principle that structure everyday nursing decisions.
Cyrillic, Greek and other non-Latin lookalikes still fold. Latin m, I, 0 and 1 are left alone so an ethics essay is not rewritten.
unicode-confusables (UTS39 raw)
2 foldsBeaucharnp and Childress describe four clusters of rnoral principle that structure everyday nursing decisions.
Official skeleton, including ASCII lookalikes. m becomes rn, so Beauchamp is flagged. Built for identifiers, not essays.
NFKC only
0 foldsBeauchamp and Childress describe four clusters of moral principle that structure everyday nursing decisions.
Compatibility normalisation. Fullwidth Latin collapses; Cyrillic а does not, because it is not a compatibility equivalent of a.
| Library | Data | Use it for | Do not use it for | In Origina |
|---|---|---|---|---|
unicode-confusables ~276k | UTS39 confusables.txt (Unicode 10) ~96 KB JSON | Identifiers, ENS-style names, IDN labels | Running prose, maps m → rn, I → l, 0 → O | Wired |
confusables ~118k | UTS39 skeletons ~108 KB | Same family as unicode-confusables | Same ASCII false positives | Surveyed |
@ensdomains/unicode-confusables ENS stack | Fork of unicode-confusables ~102 KB | Ethereum name homographs | Not a plagiarism engine | Surveyed |
homoglyph-search low | UTS39 + extra pairs ~56 KB | Search for a banned word that has been disguised | Does not fold a whole script | Surveyed |
decancer ~26k | 221k code points, leetspeak, bidi Rust native / WASM | Moderation, zalgo, leetspeak | Native binaries; over-folds academic English | Surveyed |
ICU SpoofChecker browsers | UTS39 + restriction levels Native ICU | Chrome/Edge IDN policy | Not a JavaScript dependency | Surveyed |