Invisible Character Detector

Some characters take up no space or look exactly like a normal space, yet they break searches, passwords, code and spreadsheet formulas. Paste text to find zero-width spaces and joiners, non-breaking and other unusual spaces, byte order marks, soft hyphens, bidirectional controls, tag characters and control codes, see exactly where each one is, and copy a cleaned version.

Text Cleanup Runs in your browser

Find Invisible Characters

How to Use the Invisible Characters

  1. Paste the text you want to inspect.
  2. Read the table: each hidden character type is listed with its code point, name, count and the lines it appears on.
  3. Check the preview, where each hidden character is shown as a labelled marker such as [ZWSP].
  4. Copy or download the cleaned text.

About This Tool

Developers debugging strings that look identical but do not match, editors cleaning text copied from the web or PDFs, and security-minded reviewers checking for hidden bidirectional characters in code.

Input: Plain text  ·  Output: Report and cleaned text.

Features and Limitations

Features

  • Detects more than 40 characters, including U+200B to U+200F, U+2028/U+2029, U+202A to U+202E, U+2060 to U+2069, U+FEFF, U+00AD, U+00A0 and the U+2000 block spaces.
  • Finds C0 and C1 control codes (except tab and line breaks) and Unicode tag characters.
  • Visible markers with short names, so hidden characters are found without relying on colour.
  • Cleaned output that deletes or normalises each character, with care for emoji sequences.

Limitations

  • Tabs and normal line breaks are treated as legitimate and are not reported.
  • Characters that are visible but look alike, such as the Cyrillic а and the Latin a, are not detected; use the Unicode Character Lookup tool to check suspicious letters.
  • Removing bidirectional controls can change how right-to-left text is displayed.
  • Results are computed in your browser; nothing you enter is sent to a server.

Example

“pass\u200Bword” shows 1 ZERO WIDTH SPACE on line 1 and cleans to “password”.

Frequently Asked Questions

What is a zero-width space?

U+200B is a character with no width. It is used to allow line breaks in long words, but when copied into code, URLs or passwords it silently changes the text.

Why does a non-breaking space matter?

It looks like a space but is a different character (U+00A0), so searching for “two words” will not find “two words”, and some programs reject it.

What are bidirectional control characters?

They change the display order of text for right-to-left languages. Hidden in source code they can make code look different from what it does (the “Trojan Source” problem).

Will cleaning break emoji?

No, by default. Zero-width joiners and variation selectors inside emoji sequences are kept so that, for example, 👩‍💻 stays one emoji.

Related Tools

More like this: all Text Cleanup tools, all Text & Writing tools or the TinySandy home page.