Skip to content
Ghostchars

Zero-width and invisible

ZERO WIDTH SPACE (U+200B)

A space with no width. It takes up a position in the string, marks a place where a line may break, and draws nothing at all.

Codepoint
U+200B
Also written as
u200b\u200b​
Removed by default
Yes
Governing option
No option needed
Can be load-bearing
No

Copy and paste U+200B

To copy and paste ZERO WIDTH SPACE (U+200B), press the button: the character itself goes to your clipboard, and Ctrl+V (Cmd+V on a Mac) pastes it anywhere you can type.

Where it comes from

Content management systems and word processors insert it to let a long URL or an unbroken run of CJK wrap. It also arrives with copy-pasted web content, from templating engines that emit it between tags, and from tools that hide data on purpose. It is the most common carrier in zero-width steganography.

Why it matters

It is classed as a format character rather than as whitespace, so it survives copy-paste, splits a word for a spell checker, breaks exact-match search and `grep`, and gives a hidden channel one bit per position. "hello" and "hel​lo" look identical and compare unequal.

Before and after

ZERO WIDTH SPACE (U+200B) before and after cleaning, with the hidden character shown as a labelled chip
Reference card for this character: the codepoint, the verdict, and the same before and after in one image.
BeforehelU+200Blo
Afterhello

Two strings that render identically. Only the second one matches a search for "hello".

The character is shown as a labelled chip so you can see where it sits. In your text it draws nothing at all.

When it is legitimate

Only as a break hint in text that would otherwise overflow: a long URL, a CJK paragraph. Nothing in Latin prose needs one, and HTML has `<wbr>` for the same job.

How to remove it

The default pass removes it. There is no option to switch on and no context in which Ghostchars keeps it.

Working in a file rather than a paste? The document report for .docx, .odt and .html finds it inside the file, together with hidden runs and tracked changes, without you having to open it. If the question is what the rest of the writing does rather than what this one character does, measure sentence-length variation and see where each habit sits, with no score and no claim about who wrote the text.

Is it an AI watermark?

Used to hide data, but is not a watermark

No. U+200B is not a watermark and no major model is known to emit it as a signature. It is the classic carrier for hand-made hidden payloads, so its presence tells you the text passed through something (a CMS, an editor, a stego tool), not who or what wrote it.

A known carrier for deliberately hidden payloads. Someone put it there on purpose, which is a different question from who wrote the words.

Questions

Does a zero width space show up anywhere?

Not in normal rendering: it has no glyph and no advance width. It becomes visible only in a hex editor, in an editor with "show invisibles" turned on, or in a tool like this one.

Will removing it break my text?

No. Removing U+200B can only take away a line-break opportunity. It never changes a word, a space, or any character you can see.

Check your own text

Paste anything into the cleaner to see every hidden character it contains, with position, codepoint and what happens to each one. Nothing is uploaded.

Check your own textHow to remove AI watermarks from your textClean it in Chrome as you pasteClean it on your Mac with one keystrokeAll characters

Anonymous usage stats?

Ghostchars processes your text in the browser and never uploads it. We would like to count page views with a self-hosted, cookie-light analytics endpoint. No content, ever.