Find invisible and hidden characters

Show every character’s code point and flag zero-width spaces, non-breaking spaces and direction overrides.

Runs in your browser. Your input is not uploaded.

What it does

Some characters do not show up on screen but still change how text behaves: zero-width spaces split words and break string comparisons, non-breaking spaces fail trim(), and bidirectional overrides can make source code display differently from how it runs (the “Trojan Source” problem).

The inspector lists every character with its code point, UTF-8 bytes and name, and highlights the ones that are invisible or unusual.

How to use it

  1. Paste the text.
  2. Look at the highlighted characters in the table.
  3. Use Remove invisible characters to strip zero-width and control characters, or convert unusual spaces to normal spaces.

Things to watch for

  • Some invisible characters are needed. Zero-width joiners combine emoji such as 👨‍👩‍👧, and removing them splits the emoji apart.
  • Non-breaking spaces are converted to ordinary spaces rather than deleted, so words do not run together.

Questions

How do I find a zero-width space?
Paste the text. U+200B appears as a highlighted row named ZERO WIDTH SPACE with its position.
Why does my string comparison fail when the text looks the same?
There is often a hidden character, or a look-alike such as a non-breaking space or a Cyrillic letter. This table shows the code points.
What is a byte-order mark doing in my CSV?
Excel and some Windows tools add U+FEFF at the start. It can end up in the first column header.
What are bidi override characters?
Characters such as U+202E that reverse how following text is displayed. They are flagged because they can disguise code or file names.