Zero Width Space Remover
Strip zero width spaces and every related invisible code point β U+200B, U+200C, U+200D, U+2060 and the U+FEFF byte order mark β from any text. Paste, copy, done.
Statistics appear here once you paste some text.
What is a zero width space?
U+200B ZERO WIDTH SPACE is a unicode character that marks a legitimate line-break opportunity without drawing anything. It was designed for languages such as Thai and Khmer that do not separate words with spaces. In practice it now travels through copied web text, and because it is a character with no width it is invisible to the reader but not to a string comparison.
The zero width family
U+200B ZERO WIDTH SPACE allows a break. U+200C ZERO WIDTH NON-JOINER prevents two characters from ligating. U+200D ZERO WIDTH JOINER forces them together β it is what binds emoji sequences like the family emoji. U+2060 WORD JOINER forbids a break. U+FEFF was the byte order mark and is now a zero width no-break space, the classic cause of a stray character at the top of a UTF-8 file.
Why remove them
A zero width space inside a URL breaks the link. Inside a password field it causes an unexplainable login failure. Inside a code identifier it produces a compiler error pointing at a line that looks perfectly fine. And inside AI-generated text it is the most commonly discussed watermark carrier.
Frequently asked questions
+ β How do I find a zero width space in my text?
Paste the text above. The statistics panel reports every zero width character found by name and count, and the Visualize tab shows precisely where each one sits.
+ β Does removing U+200D break emoji?
Multi-part emoji such as π¨βπ©βπ§ are built with zero width joiners, so cleaning will split them into their component emoji. Clean the surrounding text rather than emoji-heavy content if you need those sequences intact.
+ β What is the zero width space HTML entity?
​ or ​. There is no named entity for it in HTML, which is part of why it is so often pasted in as a literal invisible character instead.
More free tools
Claude Text Watermark Remover
Claude's watermark lives in word choice, not hidden characters. Rewrite word choice to disrupt it. Free, runs in your browser.
ChatGPT Watermark Remover
Detect and strip invisible unicode, zero-width spaces and hidden markers from ChatGPT text. Free and entirely in your browser.
Em Dash Remover β Strip Em Dashes From AI Text
Remove em dashes, en dashes and two-em dashes from AI text, or swap them for plain hyphens. Free, instant, no upload.
Invisible Character Detector
Reveal invisible unicode in any text. Lists every hidden code point with its name and count. Free and client-side.
AI Text Cleaner
Strip invisible unicode, em dashes, smart quotes and messy whitespace from AI output in one pass. Client-side, no upload.
Free Text-Cleaning MCP Server
A free hosted MCP server giving your agent text-cleaning tools. Install in Claude Code, Cursor or VS Code in one line.
Stop AI Using Em Dashes β Skills & Prompts
Install a Claude Skill or paste custom instructions to stop ChatGPT, Claude and Gemini using em dashes and AI filler.
C2PA Metadata Remover
Remove C2PA provenance metadata, EXIF and XMP from AI-generated images. Re-encodes in your browser; files never uploaded.
Related guides
Em Dash vs En Dash vs Hyphen
The difference between the em dash, en dash and hyphen, when to use each, and how to type them on Mac and Windows.
How to Type an Em Dash (β)
Every em dash shortcut: Mac (Option+Shift+-), Windows (Alt+0151), Word, Google Docs, iPhone, Linux and HTML.
Why Does AI Use So Many Em Dashes?
ChatGPT and Claude overuse the em dash badly. The real reason it happens, why it signals AI writing, and how to fix it.
Does ChatGPT Watermark Its Text?
OpenAI built a ChatGPT text watermark and never shipped it. What is confirmed, what is myth, and how to check your text.