Zero Width Space (U+200B): What It Is and How to Remove It

The most common invisible character on the internet, explained, and removed in under a minute.

A zero width space character sitting invisibly between two visible letters

The zero width space, Unicode code point U+200B, is a character that takes up no visible width but is very much present in your text. It was created for a legitimate typographic reason, to allow a line to break at a certain point without inserting a visible space, but today it shows up uninvited in text copied from AI tools, PDFs, and web pages, where it causes bugs that are maddening precisely because you cannot see them. This guide explains what it is, why it appears, and how to get rid of it.

What it is

A zero width space is an invisible formatting character. Unlike a normal space, it has no width, so on screen the characters on either side sit flush together. But in the underlying data it is a real character with a real code point, which means software counts it, matches on it, and can trip over it. It belongs to a small family of invisible characters that also includes the zero width non-joiner, the zero width joiner, the word joiner, and the byte order mark.

Key facts about U+200BThe zero width space at a glanceCode point: U+200BWidth on screen: nonePresent in the data: yesIntended use: invisible line-break point
Key facts about U+200B

Why it ends up in your text

You rarely type a zero width space on purpose. It arrives by copy and paste. AI chat interfaces sometimes insert them for formatting or as a subtle marker, PDF and slide exporters add them to control layout, and rich web editors sprinkle them into content. Once one is in your clipboard, it travels wherever you paste. This is the same mechanism behind the broader family of hidden characters covered in our invisible characters guide.

The problems it causes

How to remove it

The reliable way is to scan first so you can see it, then strip it. Our free scanner runs entirely in your browser.

Removing a zero width space in four steps1Paste2Scan (sees U+200B)3Clean4Copy clean text
Removing a zero width space in four steps
  1. Paste your text into the scanner.
  2. See it flagged. The tool reports each zero width space by name and position.
  3. Clean it to strip the character and normalise the text to Unicode NFC.
  4. Verify and copy the clean result.

For many files at once, the bulk tool does the same job across a whole batch.

How to see one when you cannot see it

The frustrating thing about a zero width space is that your eyes are useless against it, so you need a tool that reveals it. A scanner does this by walking the text and reporting the character by name and position, effectively giving the invisible a visible label. Some code editors can also show invisible characters if you turn on a "show whitespace" or "render control characters" setting, which draws a marker where the zero width space sits. Either way, the trick is the same: stop trying to spot it by eye and let software point to it.

Making the invisible visibleWays to reveal a zero width spaceA scanner that names and locates itEditor setting: show invisible charactersA find and replace on U+200BA diff that flags an unexpected byte
Making the invisible visible

A concrete before and after

Picture a product code you paste into a form: it looks like eight normal characters, but a zero width space is hiding after the fourth. The form rejects it as invalid, or worse, accepts it and then fails to match the same code later in your system. You cannot see the difference between the broken value and a correct one. Run it through the scanner, and the hidden character is named and removed; paste the cleaned value, and it matches everywhere. That gap between looks correct and is correct is the entire problem, and revealing the character closes it.

Removing it manually

If you prefer, a find and replace targeting U+200B, ideally with the rest of the zero width range, removes it in a capable editor, and pasting as plain text drops many instances. The catch is that manual methods are easy to get slightly wrong, and you cannot see what you missed. Scanning first removes that uncertainty. Developers can automate the whole thing; our sister site has a code tutorial for Python and JavaScript.

A quick myth check

Removing a zero width space cleans one specific marker. It does not make AI text "undetectable", because a model's statistical watermark lives in word choices, not in invisible characters, and no public tool can read or remove it with any guarantee. Anyone promising otherwise is overselling. For the honest version, our scanner does exactly what it says: finds these characters, and removes them.

Zero width space versus its relatives

The zero width space is the most common invisible character, but it has close relatives worth knowing so you recognise them when a scanner names them. The zero width non-joiner (U+200C) and zero width joiner (U+200D) control whether adjacent characters join, and the joiner is essential to emoji, so it is not always safe to strip. The word joiner (U+2060) prevents a line break without adding space. The byte order mark (U+FEFF) signals text encoding and is often left behind as junk at the start of a string. They behave similarly, invisible, present in the data, removable, but knowing the difference helps you understand what a scan report is telling you.

Frequently asked questions

What is a zero width space used for? Legitimately, it marks a point where a line may break without showing a visible space. In practice it often arrives uninvited via copy and paste and causes bugs.

How do I type or find U+200B? You rarely type it on purpose. To find it, use a scanner that flags it by position, or turn on show invisible characters in a capable editor.

Does removing a zero width space change my text? No, it has no width, so the visible text is unchanged after removal.

Is a zero width space a watermark? It can be used as a simple hidden marker, but it is not a model's statistical watermark, and removing it does not affect one.

Next: Scan your text · All invisible characters · Bulk clean