What counts as an invisible character
Unicode has dozens of characters that take up no space or look exactly like a normal space. They are useful in the right place and a nuisance everywhere else. This tool finds nine kinds:
- Zero-width characters: the zero width space (U+200B), the joiner and non-joiner (U+200D, U+200C), the word joiner (U+2060), the byte order mark (U+FEFF) and blank fillers like the Hangul filler.
- Unusual spaces: the no-break space (U+00A0), the narrow no-break space (U+202F), thin, hair, em and en spaces, and the ideographic space.
- Direction marks: the left-to-right and right-to-left marks, embeddings, overrides and isolates that reorder how text is shown.
- Soft hyphens, control characters, line and paragraph separators, and the object replacement character.
- Tag characters and variation selectors, which can carry whole hidden messages.
Each one shows in the text as a small labelled box. Point at it to see its name and code point.
Did ChatGPT add a watermark?
In April 2025 people noticed that longer replies from some ChatGPT models contained narrow no-break spaces (U+202F) where a normal space belonged, and the idea of a hidden watermark spread fast. OpenAI said it was a side effect of how the models were trained, not a watermark, and the pattern faded soon after.
Two things are worth knowing either way. These characters are trivial to remove, so they could never be a reliable watermark. And removing them does not make text written by AI look like text written by a person: tools that detect AI writing look at the words, not at spaces. This tool cleans text so it behaves; it makes no promise about detection.
Why hidden characters break things
A zero-width space inside a word stops search from finding it, breaks a password or a coupon code that looks right, and splits a URL. A no-break space in code or a spreadsheet makes a value that looks identical fail to match. Direction overrides can make code read differently from how it runs, the attack known as Trojan Source. Soft hyphens and joiners throw off word counts, sorting and SEO titles.
If something you pasted behaves oddly, paste it here first. If the right side shows boxes, they are the reason.
Hidden text and AI prompt injection
Two families of characters can spell out a whole message that no one sees on screen. Unicode tag characters (U+E0020 to U+E007E) mirror the ASCII alphabet. Variation selectors, normally used to switch an emoji between colour and plain styles, can be stacked behind an emoji to carry any bytes at all.
Both are known ways to hide instructions for AI tools inside an ordinary looking comment, email or web page. When this tool finds them it decodes the hidden words and shows them to you, so you can see what was hiding before you clean it.
What the tool keeps on purpose
Some invisible characters are doing a job. The zero width joiner glues emoji together, so the family emoji or the rainbow flag stays one picture. Persian needs the zero width non-joiner inside words, and Hindi and other Indic scripts use joiners to pick letter shapes. Flag emoji for England, Scotland and Wales are written with tag characters, and a single variation selector after a heart or a digit chooses how it looks.
With Keep what emoji and scripts need on, the tool leaves all of these alone and shows them in grey. Turn it off only if you really want every invisible character gone.
Private by design
The text you paste never leaves your browser. There is no upload and no server step, so it is safe for drafts, client documents and code. I built it as one of a set of free tools for the jobs product teams do every day.
