Skip to main content

Hidden Characters

Zero Width Space Remover (U+200B)

CleanPastedText editorial · Updated

Text workbench

Try it on your text

Cleaning mode

Removes hidden characters and standardizes AI-style punctuation.

Try a real example

Each sample contains a problem you cannot see.

Original

Pasted text

0 chars · 0 words

Cleaned

Ready to copy

0 changes

Text stays in this browser

Same words · No AI rewriting · No content logging

What is a zero width space (U+200B)?

The zero width space (ZWSP) is a non-printing character used in computerized typesetting to indicate word boundaries to text-processing systems. Because it has no width, it is completely invisible to the human eye — but it is a "real" character to a computer, counted in string lengths, compared in searches, and parsed by compilers.

While ZWSP has legitimate uses in languages that don't use visible spaces (like Thai or Japanese), it is frequently found in "corrupted" text copied from the web, PDFs, or AI tools — see which hidden characters ChatGPT emits for the AI side of the story.

The problem with ZWSP in Notion and Google Docs

Imagine the text "helloworld" with a hidden U+200B sitting between "hello" and "world". A human sees one ordinary word. The computer sees eleven characters, not ten. Then:

  • Searching for "helloworld" fails, because the stored text never contains that exact string.
  • Spellcheck flags the word or behaves erratically, confused by the invisible join.
  • Text may wrap to a new line in the middle of what looks like a single word.
  • In code, a ZWSP causes failures that are nearly impossible to debug by eye: Node reports "SyntaxError: Invalid or unexpected token", while CPython is more helpful and names the character — "SyntaxError: invalid non-printable character U+200B".

How our ZWSP remover works

Because you can't see a zero-width space, you can't delete it manually. Our tool scans the underlying Unicode code points of your text, matches U+200B, and removes every occurrence. It also catches the related zero width non-joiner (U+200C), zero width joiner (U+200D), and word joiner (U+2060), which cause the same class of problems. For the complete inventory of characters detected, see the invisible Unicode characters list, or use the broader invisible character remover to clean everything at once.

Pro tip: If you're a developer and your code is failing for no visible reason, paste it here and check the "Invisible characters removed" stat. It's often the culprit. To identify what is there before changing anything, the hidden character checker names every code point it finds without touching the text.

Common questions

Frequently asked questions

What is a zero-width space (U+200B)?

It is a Unicode character that marks a word boundary without taking up any visible width. Text-processing systems use it to know where they may break a line in scripts that don't use visible spaces. Because it renders as nothing, it is completely invisible to readers — but every program treats it as a real character, which is why it breaks search, comparisons, and code.

How do I remove zero-width spaces from text?

Paste the text into a zero-width space remover like CleanPastedText. It scans every code point, finds U+200B along with the zero-width non-joiner (U+200C), zero-width joiner (U+200D), and word joiner (U+2060), deletes them, and reports how many were removed. Manual deletion is impractical because you cannot see the characters or position your cursor on them reliably.

How can I tell if my text contains zero-width spaces?

Paste it into the cleaner on this page and check the 'What changed' report — it counts every invisible character found. Other signs: searching for a word you can clearly see returns no matches, a word wraps in the middle for no reason, or a code editor like VS Code flags an 'invisible character' warning in a pasted snippet.

Why is a zero-width space breaking my code?

A U+200B pasted into source code is a real character to the compiler or interpreter, so it triggers errors like 'SyntaxError: Invalid or unexpected token' even though the line looks perfect. It usually arrives by copying code from websites, chat apps, or AI chatbots. Cleaning the snippet before pasting removes the character and the error.

Does ChatGPT insert zero-width spaces?

No known chatbot deliberately inserts zero-width spaces, and Originality.ai's testing found that the LLMs it tested did not inject invisible characters at all. The one documented model artifact was a space, not a zero-width character: in April 2025 OpenAI's o3 and o4-mini briefly emitted narrow no-break spaces (U+202F), which OpenAI called a quirk of large-scale reinforcement learning rather than a watermark, and which stopped within days. Zero-width characters in AI text almost always come from the chat interface's HTML or from Word, Docs, and PDF copy pipelines — and a remover strips them wherever they came from.

Continue reading

Related guides & tools