Invisible Character Detector

Invisible Character Detector

Paste your text below to instantly reveal hidden Unicode characters — zero-width spaces, non-breaking spaces, byte-order marks, bidirectional controls, smart quotes and the special tag characters linked to AI text watermarks. Everything runs in your browser, so nothing you paste leaves your computer. When you are done, copy the cleaned text with one click.

Paste or type text above to scan it.

3. Clean-up options

How the detector works

The tool walks through your text one Unicode code point at a time — correctly handling emoji and other characters made of surrogate pairs — and compares each one against a built-in table of problematic code points. Ordinary letters, digits, punctuation, spaces, tabs and line breaks are left alone. Anything that is invisible, a control code, an unusual space, a directional control or a common typographic substitute is flagged, counted and located. Because the table is embedded in the page, the scan happens instantly and offline.

What it flags

CategoryExamplesWhy it matters
Zero-width & invisibleZWSP (U+200B), ZWNJ, ZWJ, Word Joiner (U+2060), BOM (U+FEFF), soft hyphen (U+00AD)Invisible to the eye but counted by software; break passwords, search and string comparisons.
Unusual spacesNon-breaking space (U+00A0), narrow/figure spaces, ideographic space (U+3000)Look like a normal space but have a different code; break CSV columns, code indentation and lookups.
Control charactersC0/C1 controls, line/paragraph separators, replacement char (U+FFFD)Often leftover from bad encoding conversions; corrupt files and terminals.
Bidirectional controlsLRM, RLM, RLO (U+202E) and isolatesCan reorder how text displays — the basis of the "Trojan Source" code attack.
Tag / smuggled charactersU+E0000–U+E007F tag blockCan encode a hidden ASCII message inside ordinary-looking text; discussed as an AI watermark vector.
Typographic substitutesSmart quotes, en/em dashes, ellipsisValid characters, but unwanted in code, JSON, CSV and many forms; optional to straighten.

Common ways to use it

Developers paste a stubborn line of code or a JSON key to find the zero-width space that is causing a parser error. Writers and editors check copy that came back from a word processor for non-breaking spaces and curly quotes before it goes into a publishing system. Data analysts clean spreadsheet cells that fail a VLOOKUP because one value secretly contains a trailing NBSP. And many people now paste AI-assistant output to see whether it carries the unusual spaces, dashes or zero-width markers that are often mentioned in discussions of machine-generated text.

Want the background? Read our step-by-step guide to finding and removing hidden Unicode characters, or the field guide to zero-width characters, smart quotes and AI text watermarks.

Frequently asked questions

What is an invisible character?

An invisible (or hidden) character is a Unicode code point that takes up no visible space or looks identical to an ordinary character but is not one. Common examples are the zero-width space (U+200B), the non-breaking space (U+00A0), the byte-order mark (U+FEFF) and bidirectional control marks. They are easy to copy by accident and can break code, search, form validation and data imports.

How do I find hidden characters in my text?

Paste the text into the detector above. It scans every code point in your browser and flags anything that is invisible, a control character, an unusual space, a bidirectional control or a typographic substitute, showing you exactly where each one sits and what it is.

Can this tool detect AI watermark or 'ChatGPT' characters?

Yes. It flags the zero-width and special tag characters (including the U+E0000-U+E007F tag range) that are sometimes discussed as hidden markers in AI-generated text. It also catches the non-standard spaces and dashes that often give machine-generated text away. Note that no tool can prove who or what produced a piece of text; the detector simply shows you the characters that are present.

Is my text sent anywhere?

No. The entire scan and clean-up runs locally in your browser using JavaScript. Nothing you paste is uploaded, logged or stored on a server.

Why does pasted text break my code or spreadsheet?

Text copied from web pages, PDFs, chat apps and word processors often carries non-breaking spaces, smart quotes or zero-width characters. A compiler, CSV parser or search box treats these as different from the plain ASCII versions, so a line that looks correct fails. Cleaning the text removes the mismatch.