Text tools

Invisible-character & homoglyph detector

Invisible-character & homoglyph detector. Runs entirely on your device, nothing is uploaded.

Runs on your device. The file is never uploaded.

Invisible-character & homoglyph detector scans a file for 18 named invisible characters and about 35 Cyrillic and Greek homoglyphs. Each hit prints its offset, its U+ number and the ASCII letter it imitates; a file with none reports Clean. The list stops at 100 hits with a count of the rest, and your file is never rewritten.

Input

Questions

Does it remove the characters it finds?

No. This tool only reports. Each finding is a line giving the position, the code point in U+ notation, and a description, and your file is not modified. To delete zero-width characters, use Whitespace cleanup, which removes U+200B through U+200D, U+FEFF, U+2060 and U+00AD. Note that the detector reports more than that tool removes, so some findings need Find and replace (regex) to clear.

Which invisible characters does it look for?

Eighteen, each named in the output: the soft hyphen, the Mongolian vowel separator, the zero-width space, non-joiner and joiner, the left-to-right and right-to-left marks, the word joiner, the four embedding and override controls, the pop directional formatting control, the four isolate controls, and the BOM, also known as the zero-width no-break space. Anything outside that list is not flagged as invisible.

What is a homoglyph, and how many can it catch?

A character from another script that renders like an ASCII letter, such as Cyrillic a or Greek omicron. The table here holds about 35 hand-picked Cyrillic and Greek letters, and each finding tells you which ASCII character it imitates. That is not the full Unicode confusables data, which runs to thousands of entries, so treat a clean result as a useful check and not as proof for something like domain-name spoofing.

What do the position numbers mean?

They are offsets in UTF-16 code units from the start of the file, counting from zero. For ordinary text that is the same as the character index, but any character outside the Basic Multilingual Plane, an emoji for example, advances the count by two. Use the offset to find the character in an editor that reports the same units.

My file is clean according to this. Is it definitely safe?

It is clean against these two lists, which is not the same as safe. The output says Clean when nothing in the eighteen invisible characters or the roughly 35 homoglyphs turned up. Other confusable characters, unusual whitespace and control characters outside those lists are not checked here. Unicode inspector shows you every code point in the file with its category, which is the thorough follow-up.

Why does the report stop partway?

The list is capped at 100 findings, with a trailing line saying how many more there were. The count in the header is the true total. A file that trips the cap usually has one systemic problem, a paste from a source that inserted zero-width joiners everywhere for instance, so the first hundred tell you what you need.

Related Text tools