Zero-Width Character Remover
Delete zero-width spaces, joiners, byte order marks and other invisible Unicode characters from any text. Paste, clean, copy — in one click.
What does a zero-width character remover do?
It deletes codepoints that occupy no visual space but still travel with your text: the zero-width space (U+200B), zero-width non-joiner (U+200C), zero-width joiner (U+200D), word joiner (U+2060) and byte order mark (U+FEFF), among others.
- Each removal is listed by codepoint and count.
- Visible wording and layout are unchanged.
- Useful for cleaning pasted text before publishing, or debugging odd string comparisons.
The zero-width characters this tool removes
| Codepoint | Name | Common source |
|---|---|---|
| U+200B | Zero-width space | AI text, web copy-paste |
| U+200C | Zero-width non-joiner | Web rendering, formatting |
| U+200D | Zero-width joiner | AI text (preserved inside emoji) |
| U+2060 | Word joiner | Word processors, web HTML |
| U+FEFF | Zero-width no-break space / BOM | File encoding, copy-paste |
| U+00AD | Soft hyphen | Word processors, justified text |
| U+180E | Mongolian vowel separator | Legacy encoding |
What else gets cleaned
The tool also removes bidirectional controls (U+202A–U+202E, U+2066–U+2069), variation selectors (U+FE00–U+FE0F), Unicode tag characters (U+E0001–U+E007F), and normalizes space homoglyphs (non-breaking space, thin space, hair space) back to a plain U+0020 space.
Why zero-width characters matter
- Exact-match search fails. A term containing a zero-width space will not match an exact search for the same term typed normally.
- String comparison breaks. Two visually identical identifiers compare as different, causing bugs in databases and spreadsheets.
- Code syntax errors. A zero-width character inside pasted code produces an error at a location that looks correct.
- Form validation rejects input. APIs that reject control characters will fail on invisible codepoints.
Frequently asked questions
What is a zero-width character?
A zero-width character is a Unicode codepoint that takes up no visual space. The most common are zero-width space (U+200B), zero-width non-joiner (U+200C), zero-width joiner (U+200D), and byte order mark (U+FEFF). They are invisible but count toward string length and affect comparisons.
Where do zero-width characters come from?
They appear in text copied from AI chat interfaces (ChatGPT, Claude, Gemini), web pages with styled spans, rich-text editors, and documents with complex formatting. The web rendering layer introduces them during copy-paste.
Why should I remove zero-width characters?
They break exact-match search, cause string comparisons to fail, corrupt diffs and version control, fail form validation on control characters, and propagate through every copy-paste. Two visually identical strings can compare as unequal.
Will removing zero-width characters change my text?
No visible change. These characters have no glyph, so removing them changes nothing you see. The text reads identically; only the byte-level representation is cleaned.
Are there cases where zero-width characters should be kept?
Yes. Zero-width joiners inside emoji sequences (like family or skin-tone emoji) are load-breaking if removed. The tool preserves these by default and only strips zero-width characters that are being used as watermark carriers or formatting artifacts.
Related
Remove zero-width characters now
Paste your draft, hit Clean, and copy back plain text with zero invisible characters. Free, no sign-up, nothing stored on our servers.
Open the free tool