Skip to content
All tools

Invisible Character Detector

Paste text to see every character you can't: zero-width spaces, non-breaking spaces, direction controls, blank "filler" characters and hidden tag text. Each one is labelled, explained, and removable.

How to find and remove invisible characters

  1. Paste your text. Every hidden character appears as a coloured label where it sits.
  2. Read the table: each character type is named and explained, with a count.
  3. Ticked rows are removed. Safe types are ticked for you; emoji parts and script joiners aren’t.
  4. Copy the cleaned text, or press Re-check to confirm nothing is left.

What the colours mean

  • Blue, spaces: no-break, thin, wide and other spaces that look normal but aren’t the space bar’s character.
  • Coral, zero-width: characters with no width at all, such as the zero-width space and invisible separator.
  • Amber, direction: marks and overrides that change left-to-right or right-to-left display order.
  • Violet, fillers: blank characters (Hangul fillers, soft hyphens) often used to fake empty names or bios.
  • Green, emoji parts: joiners and variation selectors that build emoji. Usually leave these alone.
  • Red, tags and controls: characters that hide text or don’t belong in normal writing.

Where hidden characters come from

Most are picked up by accident. Web pages use no-break and zero-width spaces for layout, Word and Google Docs add no-break spaces and soft hyphens, PDFs leave odd spaces between words, and copying between right-to-left and left-to-right languages leaves direction marks behind.

Some are deliberate. Our own Instagram line break tool puts an invisible separator (U+2063) on blank lines, because Instagram drops truly empty lines. That one is labelled ISEP here; keep it if you want the spacing. Spam and filter-evasion tricks insert zero-width spaces inside words, and invisible tag characters can carry hidden instructions to AI systems.

If your problem is styled letters rather than hidden ones, use fancy text to normal text.

About the invisible character detector.

They're Unicode characters with no visible shape: zero-width spaces, joiners, direction marks, non-breaking spaces and blank fillers. Most arrive by accident, copied along with text from web pages, PDFs, Word, Google Docs or chat apps. Some are added on purpose: line-break tools add them so Instagram keeps blank lines, spammers use them to slip past word filters, and blank fillers are used to fake empty names and bios.

Because software sees them even when you don't. A zero-width space inside a word stops search and hashtags from matching, a non-breaking space can make a password or code fail, a stray direction mark can reorder punctuation, and a right-to-left override can disguise a file name or link. If text 'looks right but doesn't work', an invisible character is a likely cause.

Not quite, which is why the tool doesn't by default. The zero-width joiner and variation selectors are part of emoji (👩‍💻, ❤️), and the zero-width non-joiner is needed to spell Persian, Hindi and several other languages correctly. Those are listed but left unticked. Everything ticked is safe to strip from ordinary posts and documents.

Unicode has a block of invisible 'tag' characters that mirror the ASCII alphabet. They're meant for subdivision flags like 🏴󠁧󠁢󠁳󠁣󠁴󠁿, but a string of them outside a flag spells out a message nobody can see. It's been used to smuggle instructions into text that's fed to AI chatbots. The detector decodes any such run so you can read it, and removes it if you want.

Explore the topic cluster

A wider set of tools and guides on this topic.