Free invisible character detector
Invisible Character Remover
Reveal and delete zero-width spaces, no-break spaces, joiners, byte order marks and hidden tag characters. Each one is marked where it sits, with its Unicode code.
- Nothing uploaded
- Cleans as you type
- Free, no sign-up
Watermark check
- Hidden-character marks
- Paste text to check
- AI citation and link tags
- —
- Formatting fingerprints
- —
- Statistical watermark
- Claude (models since August 2026), ChatGPT in the EU (from October 2026) and Gemini mark text through word choice. It cannot be seen, and cleaning characters does not change it. Rewriting the wording does.
Cleaning options
Invisible characters
- Hidden characters
Zero-width spaces and joiners, byte order marks, soft hyphens, direction marks, tag characters.
- Special spaces
No-break, narrow no-break and other odd spaces become normal spaces.
AI leftovers
- AI citations and link tags
ChatGPT citation leftovers and utm_source=chatgpt.com on links.
- Numbered citations
Markers like [1] or [2, 3]. Off by default, since essays use them too.
Formatting fingerprints
- Markdown
Asterisks, # headings, tables, code fences and LaTeX math.
- Em and en dashes
Replaced with a hyphen or a comma.
- Curly quotes
“ ” ‘ ’ become straight quotes.
- Ellipsis character
The single … character becomes three dots.
- Spacing
Double spaces, trailing spaces and extra blank lines.
Advanced
- Fancy letters
Fullwidth, ligature and bold-math letters become plain letters.
- Lookalike letters
Cyrillic and Greek letters hiding inside English words.
- Emoji
Removes emoji such as 🚀 and ✅.
Why invisible characters cause trouble
- They break search and matching. A word with a zero-width space inside it no longer matches the same word without one, in a find, a spreadsheet formula or a database.
- They break code. A no-break space or byte order mark in a script or config file looks like whitespace but fails to parse.
- They break layout. Soft hyphens and joiners change where lines wrap, and stray direction marks can flip the order of text.
- They can hide instructions. Unicode tag characters can spell out text that people cannot see but AI models read, a trick used for prompt injection.
Characters this tool detects
| Character | Code | What it does |
|---|---|---|
| Zero-width space | U+200B | An invisible line-break point |
| Zero-width non-joiner | U+200C | Stops letters joining. Kept in Persian, Arabic and Indic text. |
| Zero-width joiner | U+200D | Joins characters. Kept inside emoji. |
| Word joiner | U+2060 | Prevents a line break |
| Byte order mark | U+FEFF | Marks the start of a file; invisible mid-text |
| Soft hyphen | U+00AD | A hyphen that only appears at a line break |
| No-break space | U+00A0 | A space that keeps two words together |
| Narrow no-break space | U+202F | A thin no-break space, seen in AI answers |
| Direction marks and overrides | U+200E, U+200F, U+202A to U+202E, U+2066 to U+2069 | Change text direction; overrides can disguise file names |
| Tag characters | U+E0000 to U+E007F | Invisible copies of ASCII letters |
| Variation selectors | U+FE00 to U+FE0F, U+E0100 to U+E01EF | Change how a character is drawn; runs of them can hide data |
| Blank fillers | U+3164, U+115F, U+2800 | Blank characters often used to fake empty names |
How to see hidden characters
Paste your text, then open What changed. Each invisible character is drawn as a small tag, such as ZWSP for a zero-width space or NBSP for a no-break space, and hovering a tag shows the full name and code. Character details counts every kind that was found.
What it keeps on purpose
Some invisible characters are doing a job. Joiners inside emoji and in Persian, Arabic and Indic scripts stay, a single variation selector after an emoji stays, flag tag sequences stay, and direction marks stay when the text contains right-to-left writing.
Writing in Google Docs?
Write It types, humanizes and checks your writing inside Google Docs, Slides and Word. Install the extension to try it free.