Free tool
Zero width space remover and decoder
Paste text that looks normal but fails search or comparison. This free remover names U+200B and related zero-width characters, then removes the unused ones in your browser.
Updated
Nothing is uploaded. The cleaning happens on this page.
Your text is analysed in the browser. Press Clean text to see results below.
Standard removes only characters you cannot see. Maximum also rewrites text you can see (look-alike letters, quotes, dashes and spacing), so it is a choice, not a default.
Advanced(extra cleanups, off by default)
The defaults already remove every character that is invisible and doing no work: zero-width characters, byte-order marks, soft hyphens, invisible math operators, bidi overrides, free-floating tag characters and variation selectors, noncharacters, and other format controls. Everything below goes further than that: it either changes text you can see or removes characters that are doing a job, so you decide.
Whitespace & layout
Letters & punctuation
Controls
Aggressive
Press Clean text and we'll show you exactly what was hiding in there, in plain language first, with the codepoints underneath if you want them.
Paste the text into the cleaner above and press Clean text. Standard removes U+200B, U+2060 and a stray U+FEFF and keeps the joiners an emoji or a script needs; Show what's hidden lists every finding with its position. Nothing is uploaded.
What it finds
It has no glyph or width, so it can split a word without changing what you see.
It controls joining in scripts such as Persian, so the engine keeps it when it is load-bearing and removes it in a hiding context.
It joins emoji and letters, so the engine keeps it inside a real sequence and removes it when it is unused.
It prevents a line break without displaying a mark, and the default pass removes it.
U+FEFFZERO WIDTH NO-BREAK SPACEIt can mark byte order at the start of a stream, but a stray copy inside pasted text is removed.
Example
Before cleaning
invisi\u200Bble word\u2060joiner
After cleaning
invisible wordjoiner
Questions
How do I remove a zero width space?
Paste the text into the cleaner. Standard cleaning removes U+200B, U+2060, and stray U+FEFF characters, then the findings table names every change.
Will removing zero-width characters break emoji or Persian text?
The default pass keeps U+200C and U+200D when context shows that they join a script or emoji sequence. Maximum can remove load-bearing joiners, so review that option before using it.