Lookalike letters
CYRILLIC SMALL LETTER A (U+0430)
The Cyrillic letter a. In almost every font it is drawn identically to the Latin letter a, and it is a completely different codepoint.
- Codepoint
U+0430- Category
- Lookalike letters
- Removed by default
- No
- Governing option
- Lookalike letters
--confusables - Can be load-bearing
- No
Where it comes from
Russian, Ukrainian, Bulgarian and Serbian text, obviously. In Latin words it comes from a Cyrillic keyboard layout left on, from a copy-paste out of mixed text, and from deliberate substitution — domain spoofing, filter evasion, and homoglyph steganography, which encodes bits by swapping Latin letters for lookalikes.
Why it matters
A single swapped letter defeats every exact-match check while remaining invisible to the reader. It is how "pаypal.com" gets registered, how a banned word slips past a filter, and how a hidden bit gets stored in a word.
Before and after
One Cyrillic letter in an otherwise Latin word. The rendering is identical; the string is not.
The character is shown as a labelled chip so you can see where it sits. In your text it draws nothing at all.
When it is legitimate
In Russian, Ukrainian, Bulgarian, Serbian and every other language written in Cyrillic — that is, in a very large amount of perfectly ordinary text.
How to remove it
Turn on Lookalike letters (`--confusables`) and it is replaced with Latin "a". Be careful: that option maps 1,513 codepoints to Latin and will destroy genuine Cyrillic, Greek, Armenian and Cherokee text. Use it when you know the text is meant to be Latin.
Is it an AI watermark?
Not a watermark
No. A Cyrillic letter in a Latin word is either a keyboard artefact or a deliberate substitution by a person. Language models do not insert homoglyphs as marks; they produce them only when the surrounding text is genuinely Cyrillic.
No connection to machine-generated text. It comes from software, from a keyboard, or from a person.
Questions
Is this how lookalike domains work?
Yes. An internationalised domain name can contain Cyrillic letters that render like Latin ones. Browsers defend against this by showing the punycode form when a name mixes scripts.
Will `--confusables` destroy Russian text?
Yes. The option maps lookalikes to Latin unconditionally, so Russian, Greek, Armenian and Cherokee text is destroyed by it. That is why it is off by default and why the toggle says so.
How do I find them without changing anything?
Reveal the text rather than cleaning it. Every confusable is listed with its position, its codepoint and the Latin letter it imitates, and nothing is modified.
Check your own text
Paste anything into the cleaner to see every hidden character it contains, with position, codepoint and what happens to each one. Nothing is uploaded.