Remove invisible characters, hidden Unicode and AI watermarks from ChatGPT, Claude and Gemini text.
Text copied from ChatGPT, Claude, Gemini, PDFs or web pages often carries characters you cannot see: zero-width spaces, non-breaking spaces, byte-order marks and direction marks. They break word counts, search-and-replace, code and CMS formatting. Paste your text to highlight every hidden character and copy a clean version.
Everything runs in your browser — your text is never sent to our server.
Drop in any text — an AI answer, a document or a web page snippet.
Every invisible or unusual character is highlighted in place and counted by type with its Unicode code point.
Remove invisible characters, turn odd spaces into normal spaces, and optionally straighten quotes, replace dashes and tidy blank lines.
Copy the cleaned text or download it as a .txt file.
Detects 40+ invisible and unusual Unicode characters, including Unicode tag characters used to hide text
Shows exactly where each hidden character was, not just a count
Runs entirely in your browser — nothing is uploaded or stored
Optional fixes for curly quotes, em dashes and extra blank lines
Replace em dashes with commas, hyphens or full stops after cleaning hidden characters.
| Character | Code point | What it does |
|---|---|---|
| Zero-width space | U+200B | Invisible break opportunity |
| Zero-width non-joiner / joiner | U+200C / U+200D | Controls letter joining in some scripts and emoji |
| Word joiner | U+2060 | Prevents a line break, invisible |
| Byte-order mark | U+FEFF | File-encoding marker that sometimes ends up mid-text |
| Soft hyphen | U+00AD | Only shows when a word wraps |
| Direction marks and overrides | U+200E–200F, U+202A–202E, U+2066–2069 | Change text direction; can make text display in a misleading order |
| Unicode tag characters | U+E0000–E007F | Invisible copies of ASCII that can hide text from humans |
| Non-breaking and special spaces | U+00A0, U+202F, U+2000–200A, U+3000 | Look like spaces but are different characters (converted to a normal space) |
Need to remove dashes too? Use the em dash remover. Removing Markdown symbols like ** and ##? Use Markdown to plain text.
You will see claims online that AI tools insert invisible characters as a watermark. AI output can contain characters such as narrow no-break spaces or zero-width spaces, but they also appear in text copied from PDFs, word processors and websites, so their presence does not prove where text came from. This tool simply finds and removes them, whatever their origin.
No. AI-writing detectors analyse wording and style, not invisible characters. Cleaning removes formatting problems; it does not change who or what wrote the text.
U+200B is a character with no width that marks a possible line break. It is invisible on screen but counts as a character, can break searches and URLs, and often slips in when copying from web pages or apps.
A non-breaking space (U+00A0) or narrow no-break space (U+202F) looks like a normal space but behaves differently in code, spreadsheets and search. Converting them to a regular space avoids subtle bugs.
Yes. The cleaning runs in JavaScript in your browser; the text never reaches our server.