AI Text Cleaner
Clean text from ChatGPT, Claude or Gemini: remove hidden characters, replace em dashes and smart quotes, strip Markdown. Free and private.
Hidden characters found in your text —
What was changed
Nothing to clean — the text has no hidden characters or AI punctuation.
- Zero-width characters
- Soft hyphens
- Direction marks
- Non-breaking spaces
- Em dashes
- En dashes
- Smart quotes
- Ellipses
- Markdown marks
- Blank lines
- Trailing spaces
Your input stays in your browser — nothing is uploaded to our servers.
Text copied from ChatGPT, Claude, Gemini or Copilot often carries more than you see. Invisible zero-width characters, non-breaking spaces and direction marks can break word counts, search, code and CMS layouts. AI-typical punctuation such as em dashes and curly quotes makes the text look machine-written. This AI text cleaner fixes both in one paste.
How to use the AI text cleaner
- Paste your text into the left box, or click Try example.
- Choose what to fix: em dashes, en dashes, smart quotes, ellipses, blank lines, trailing spaces and, if you want, Markdown.
- The cleaned text appears instantly on the right. Check the summary to see what was changed.
- Click Copy and paste the clean text wherever you need it.
What gets cleaned
- Always removed: zero-width space (U+200B), zero-width non-joiner and joiner, word joiner, byte order mark (U+FEFF), soft hyphen (U+00AD), Mongolian vowel separator and bidirectional marks (U+200E, U+200F, U+202A–U+202E).
- Always normalized: non-breaking space (U+00A0), narrow no-break space (U+202F) and other typographic spaces become a normal space.
- Optional: em dash (—), en dash (–), curly quotes, the ellipsis character (…), extra blank lines, trailing spaces and Markdown formatting.
Turn on Show hidden characters to see exactly where each invisible character sits in your original text.
Frequently asked questions
Does ChatGPT add hidden watermark characters to its text?
Text copied from AI chats sometimes contains non-breaking spaces, narrow no-break spaces or zero-width characters. They can come from the model output, the chat interface or the copy itself. They are not a reliable watermark, and removing them does not make text "undetectable": AI detectors judge wording and style, not invisible characters.
Why replace em dashes in AI-generated text?
Language models use the em dash (—) far more often than most people write it, so many readers see it as a sign of AI text. You can turn each em dash into a comma, into a spaced hyphen, or keep it. A dash at the start of a line becomes a list hyphen.
Will the cleaner break emoji or accented letters?
No. Accented letters, guillemets « » and other alphabets are left untouched. The zero-width joiner inside emoji sequences such as 👨👩👧 is kept; only stray joiners are removed. Note that narrow no-break spaces used in French typography are replaced with normal spaces.
What does "Strip Markdown" remove?
It removes heading signs (#), bold and italic markers (** and _), inline code backticks, code fences, blockquote markers and bullet markers, and turns links into "text (URL)". Numbered lists keep their numbers. It is off by default because some people want to keep the Markdown.
Is my text sent anywhere?
No. All cleaning happens in your browser with JavaScript. Your text is never uploaded, stored or logged.