What it does
Paste a string that misbehaves (a password that “is correct”, a command that fails, two names that look equal but are not) and every character is checked as you type.
- Problems panel lists what was found, with line and column: zero-width characters (ZWSP, ZWNJ, ZWJ, word joiner), a BOM, no-break and other odd spaces, bidirectional controls including unterminated ones (the Trojan Source pattern), soft hyphens, control characters, invisible tag characters with the hidden text decoded, confusable Cyrillic and Greek lookalikes, fullwidth forms, smart punctuation, non-ASCII digits, stacked combining marks, NFC differences, mixed line endings and mojibake such as
éorı. - Visible view shows the text with every invisible character as a badge and lookalikes underlined. Click one to select it in the editor.
- Character table gives each code point:
U+value, name, general category, script, UTF-8 bytes, UTF-16 units and the C# escape. Export it as CSV. - Counts for code points, graphemes, UTF-16 units (what
string.Lengthreturns) and UTF-8 bytes.
Fix it
One click removes invisible characters, turns odd spaces into normal spaces, normalizes to NFC, replaces confusables or smart punctuation with ASCII, repairs mojibake or unifies line endings. Every fix can be undone. Genuine Russian, Greek or Turkish text is left alone: lookalikes are only flagged inside Latin words or words that imitate them. The case notes explain the Turkish dotted and dotless i (İ, ı) and why .NET identifiers need ToUpperInvariant and ordinal comparisons.
Privacy
Your text never leaves the browser. It is kept in local storage so a refresh doesn’t lose it; use Clear to remove it.