Zero-width space remover
What the Claude zero-width space remover does
Paste text, press Remove hidden characters, copy the result. It takes out 14 invisible Unicode characters and changes nothing else. There are no checkboxes and no settings, because there is exactly one behaviour.
This matters more than it sounds. Most cleaners on this search term also tidy your spacing: they collapse repeated spaces, trim the ends of lines, or strip whitespace entirely. This one does not touch whitespace at all. Your indentation, your line endings and your blank lines come out identical to the way they went in.
It runs in your browser. Nothing is uploaded, there is no account, no length cap and no limit on how many times you run it.
The character
What a zero-width space actually is
U+200B exists to show where word boundaries are without displaying a visible space, and to mark a place where a line may break without adding a hyphen. In HTML the wbr element does the same job. It is a real typographic tool, not a defect.
The problem is what happens when one ends up somewhere it was not meant to be. It occupies a character slot while rendering nothing, so a program comparing two strings sees a difference a reader cannot. That is why a word that looks identical on screen fails to match in a find and replace, a lookup or a slug.
How to
How to use the Claude zero-width space remover
Three steps and no decisions. If you want to see what a contaminated paste looks like first, press Try a sample.
- Step 1
- Paste the text. There is no length limit, so a whole file is fine, and the meter above the box counts characters and words as you type.
- Step 2
- Press Remove hidden characters. The result appears in the box on the right, and the footer reports how much shorter the text got.
- Step 3
- Press Copy. The original stays in the input box if you want to compare the two.
The list
The 14 characters, and the three it swaps
Eleven are deleted. Three are replaced with an ordinary space instead, because they look like spaces and deleting them would run two words together.
- Deleted: the zero-width four
- Zero-width space, zero-width non-joiner, zero-width joiner and word joiner. Invisible, they take a character slot, and they survive copy and paste.
- Deleted: byte-order mark
- Correct at the very start of a file, a problem anywhere else, where it confuses parsers, feeds and validators.
- Deleted: soft hyphen
- Invisible until the line wraps, at which point a hyphen appears in a word that never contained one.
- Deleted: five direction controls
- Two embeddings, a pop, and the left-to-right and right-to-left overrides. An override changes the order text is displayed in.
- Replaced with a space: three
- No-break space, narrow no-break space and hair space. These are swapped rather than removed, so word boundaries survive.
- Kept: emoji joiners
- A zero-width joiner sitting between two emoji is what builds a single composed glyph, so it is left where it is. Only stray joiners go.
Scope
What it deliberately leaves alone
Punctuation is untouched. Curly quotes stay curly, en dashes and em dashes stay as they are, and an ellipsis character is left alone. Markdown is untouched, so headings, emphasis markers and code fences all survive.
The wider invisible-character set is not covered either. Variation selectors, the left-to-right and right-to-left marks, directional isolates, the invisible math operators and the Mongolian vowel separator are all outside the list of 14. Some tools remove those too. This one does not, and saying so is more useful than implying a bigger number.
Careful
When you should not remove them
Zero-width spaces are used to mark word breaks in languages that do not put visible spaces between words, including Thai, Myanmar, Khmer and Japanese. Removing them from text in those scripts destroys information a reader needs.
The zero-width non-joiner is meaningful in Persian and in several Indic scripts, where it controls how letters join. Check text in those languages before cleaning it. On the other side of the argument, ICANN prohibits zero-width spaces in domain names because they can be used to build a homograph attack, where a malicious URL is visually indistinguishable from a legitimate one. In a link, they are never harmless.
The obvious question
Does the Claude zero-width space remover touch the watermark?
No. Anthropic's own explanation of Claude's text watermark says nothing is added to the text and there are no hidden characters. It is a pattern in word choice, so there is nothing here for a character remover to remove.
Use this for text hygiene: making sure the string you paste into a repository, a database or a URL is the string you think it is. It is not a way to conceal how something was written, and it makes no difference to any AI detector.
In practice
Who removes zero-width spaces, and when
Developers pasting assistant output into code, configuration or a commit message, where a stray character shows up as a diff nobody can see. Anyone building a slug, a filename or a lookup key from copied text. Editors who need the words untouched and the bytes clean.
The reason to use this rather than a general cleaner is that nothing else changes. If your file is YAML, Python or a Markdown document where spacing carries meaning, a tool that also normalises whitespace will quietly break it. This one cannot.