AI text cleaner

AI-generated text carries characters you cannot see: zero-width spaces, joiners, bidi marks, soft hyphens and spaces that are not spaces. Paste it here to find them, see exactly what was there, and copy out clean text.

  • No signup required
  • Runs in your browser
  • Nothing is uploaded

Off by default. Invisible characters are always removed; this switch only changes typographic characters that some people want to keep.

Cleaned text · ready to paste
Your cleaned text appears here.

Runs entirely in your browser. Nothing you paste is uploaded or stored.

Hidden characters are the easy problem. The harder one is whether AI engines can read and quote the page you paste into.
Check a page free

What hidden characters actually do

They are invisible and they are not neutral. A zero-width space inside a word stops search, find-and-replace, spell-check and diff tools from matching it, so the same sentence appears to be two different strings. A soft hyphen renders as a hyphen in one editor and vanishes in another, so the same paragraph disagrees with itself about spelling. A bidirectional control reverses the visual order of text around it, which is how a string that looks innocent in a browser turns into something else when it reaches a database. U+2028 and U+2029 are worse than invisible: paste one into JavaScript or JSON and the script breaks with a syntax error that points at a line that looks empty. None of this is malware. It is the debris of text that has been assembled, tokenised, copied between systems and pasted back.

How the cleaner works

Every character you paste is examined by codepoint and sorted into one of seven groups. Each group is reported with a count and the exact codepoints found, for exampleU+200B (3), U+00A0 (1), so the result is auditable rather than a black box that says “cleaned”. Removal is targeted: zero-width characters, bidi controls, soft hyphens, control codes and variation selectors are deleted; unusual spaces and line separators are normalised to a plain space or a newline so your paragraph structure survives. Everything else, including every visible word, is untouched. The optional switch converts curly quotes, en and em dashes and ellipses to ASCII, and is off by default because that is a different decision from removing what you cannot see.

When this matters

Three places, mostly. First, publishing: content pasted from a chat window into a CMS can arrive with invisible characters that later break an excerpt, a meta description or an RSS feed. Second, engineering: a config value, a test fixture or a translation string with a stray zero-width character fails in ways that cost an afternoon. Third, compliance and accessibility: invisible characters are read aloud by some screen readers as nothing at all, or as a pause, which is confusing when they sit inside a word. Running the cleaner before paste is cheaper than debugging after.

What cleaning does not fix

Honest boundary: a clean paste is not a visible one. Removing hidden characters will not improve how ChatGPT, Perplexity or Google describe you, because those systems are deciding which pages to retrieve and quote, not which strings are tidy. That is a different problem with a different fix: crawlable content, clear structure, and the third-party sources an answer engine trusts. Grade a page with the AI answer-readiness checker, then set your AI crawler rules so the engines can reach it, and check the evidence on what actually moves an AI answer before you spend a budget on it.

Frequently asked questions

Why does AI-generated text contain invisible characters?

Models emit them for the same reasons older software did: a zero-width space keeps a long token unbroken, a word joiner stops a line break mid-term, a non-breaking space holds a phrase together, and a BOM or bidi mark survives from whatever source the answer was assembled out of. When you copy the answer into a CMS, a diff, a translator or a form field, those characters come with it.

What does this cleaner remove?

Seven groups: zero-width characters (U+200B, U+200C, U+200D, U+2060, U+FEFF, U+180E), bidirectional controls, soft hyphens, unusual spaces normalised to a plain space, U+2028 and U+2029 line and paragraph separators, C0/C1 control codes, and variation selectors. It reports how many of each it found, with the exact codepoints, so you can see what was in the text rather than taking it on trust.

Does my text get uploaded?

No. The cleaner runs entirely in your browser with JavaScript. Nothing you paste is sent to us, logged, or stored, and there is no signup. You can disconnect from the network after the page loads and it will still work.

Should I also convert curly quotes and dashes?

Only if the destination needs ASCII. Curly quotes, en and em dashes and ellipses are legitimate typography and are perfectly valid on the web. Convert them when the text is going into code, a database field, a CSV or a system with a limited character set. That option is off by default for that reason.

Will cleaning the text change how AI engines treat my page?

Not meaningfully. Invisible characters are a publishing and workflow problem, not a visibility one: they break editors, diffs, translations and screen readers. What decides whether an AI engine can quote your page is whether the content is crawlable, structured and worth citing - which is what the answer-readiness checker grades.