An AI cleaner for text is a tool that removes the typographic fingerprints — em dashes, curly quotes, hidden Unicode characters and padded spacing — that large language models leave in their output, without rewriting any of the actual words. The output reads the same as the input, but every smart quote becomes a straight quote, every em dash collapses to a single character of your choice, and every invisible zero-width space, byte order mark and bidi embedding is removed before the text reaches your editor or your CMS. The point is not to disguise the text or to fool a detector. The point is normalization: the same words, in plain keyboard characters, ready for find-and-replace, word counts and the rest of your publishing pipeline. A good AI cleaner for text does this with explicit, switchable rules and reports how many characters each rule changed, so nothing happens silently and you can verify the run instead of trusting a silent rewrite.

What AI Drafts Actually Carry
When you ask a large language model for a paragraph and paste the result into your draft, the visible text is usually fine. The problems are in the characters you cannot see, or in characters that look identical to the ones you would type yourself. Em dashes (U+2014) appear where you would have written a hyphen or two short dashes. Curly "smart" quotes wrap phrases where your keyboard would produce straight ASCII quotes. The single ellipsis character U+2026 replaces three typed full stops. A zero-width space, a word joiner, a byte order mark or a soft hyphen can sit between any two letters without changing what you see on screen, but they change your word count, break find-and-replace, and survive copy and paste into a new document.
Some of these characters are stylistic. Some are structural. The en dash, em dash and horizontal bar (U+2013, U+2014, U+2015) act as sentence dashes in AI writing; U+2010, U+2011 and U+2012 are visually identical hyphens that look like a normal keyboard hyphen but are not. The U+2018 through U+201F block contains the curly quotes, the single and double primes, and the low and reversed forms. A run of these mixed with a few zero-width spaces is exactly the pattern that find-and-replace and word counters miss, which is why a dedicated AI cleaner for text exists at all.
The Six Rules, Each One a Switch
A rule-based AI cleaner for text breaks the job into named categories and lets you turn each one on or off independently. The AI Text Cleaner ships six rules, and the change each rule makes is counted separately so you can audit the run instead of trusting a silent rewrite.
| Rule | Characters it targets | What it produces |
|---|---|---|
| Dashes | En dash (U+2013), em dash (U+2014), horizontal bar (U+2015); plus the visually identical stand-ins U+2010, U+2011 and U+2012 | Sentence dashes become a hyphen, comma or single space (your choice); word-internal stand-ins always become a keyboard hyphen |
| Smart quotes | U+2018–U+201F plus single and double prime marks | Straight apostrophe and straight double quote |
| Ellipsis | U+2026 | Three full stops |
| Invisible characters | Zero-width space, word joiner, byte order mark, soft hyphen, combining grapheme joiner, left-to-right and right-to-left marks, invisible math operators, the Unicode Tags block, supplementary variation selectors, and the bidi embeddings, overrides and isolates behind the Trojan Source vulnerability | Removed |
| Spacing | Runs of two or more spaces or tabs; trailing spaces at the end of every line | Collapsed to one ordinary space |
| Blank lines | Multiple blank lines between paragraphs; blank lines at the start or end of the text | At most one blank line between paragraphs |
Two details in the dash rule matter more than they look. First, a run of several dashes collapses to one replacement, so three em dashes in a row become a single character rather than three hyphens side by side. Second, the spacing around the dash is repaired at the same time, so you never end up with a double space afterwards or a space before a comma. The minus sign U+2212 is left alone because it is a mathematical operator and rewriting it would change the meaning of a number. Guillemets and CJK brackets are also left alone, because rewriting them would damage legitimate non-English quoting rather than remove an AI artifact.
How to Clean an AI Draft Step by Step
The whole job is three actions: paste, choose rules, run.
- Paste the AI-generated text into the input box. If you do not have a draft handy, select Load sample to see a typical example with em dashes, smart quotes, an ellipsis and a hidden character or two already in it.
- Tick the rules you want to run. For a full cleanup leave all six on. For a surgical pass, turn off the rule that would touch a character you want to keep — for instance, leave the spacing rule off when you have set your own paragraph rhythm and do not want it collapsed. Pick what the dash rule replaces: hyphen, comma, or single space.
- Select Clean text. The output appears in the cleaned box, and underneath it the tool reports how many characters each rule changed. Copy the cleaned result.
If the per-rule counts do not add up the way you expected, the rule you turned off is the one that would have handled what you are still seeing. Turn it on, run again, and the new count for that rule should be non-zero.
What the Invisible-Character Rule Strips — and What It Keeps
The invisible-character rule is the one that matters most for pasted AI output, and it is also the one with the most exceptions. Hidden characters that look like nothing can survive every step of a normal editing pipeline, so the cleaner strips them by name — but only by name, not by category. Three characters are deliberately kept because removing them would corrupt valid text.
| Removed by the invisible-character rule | Kept on purpose |
|---|---|
| Zero-width space, word joiner, byte order mark, soft hyphen | Zero-width joiner (holds multi-person emoji sequences together) |
| Combining grapheme joiner | Zero-width non-joiner (grammatically required in Persian, Arabic and several Indic scripts) |
| Left-to-right and right-to-left marks, plus bidi embeddings, overrides and isolates behind the Trojan Source vulnerability | Variation selectors U+FE00 through U+FE0F (including VS-16, which is what makes an emoji render as an emoji) |
| Invisible mathematical operators | |
| Unicode Tags block (a documented hidden watermark carrier) | |
| Supplementary variation selectors |
Every code point in these lists was checked against the Unicode Character Database (UnicodeData.txt) and cross-checked against a second authoritative source. The Trojan Source marks are worth naming in particular: they are invisible, they survive copy and paste, and they can reorder how a line renders on screen or in a code review, which is why the cleaner strips them rather than passing them through.
Where the Cleaner Stops
An AI cleaner for text that only normalizes formatting is not the same tool as a paraphraser or a humanizer, and the distinction is worth being explicit about. The cleaner changes the characters around the words, never the words themselves. It does not rewrite sentences, does not paraphrase, does not translate, does not improve style, and does not detect AI authorship. It makes no claim that cleaned text will pass any AI detector, because the typography of a passage is not what those detectors read.
That boundary is also why each rule is a switch. If you only want to strip the invisible characters — for instance, to defang a draft before you hand it to a translator or paste it into a code review — turn the other five rules off. If you only want to straighten the curly quotes so your CMS does not store them as HTML entities, leave the dash rule off and run the rest. The cleaner is a normalization tool, not an editor.
Privacy, Limits and Line Endings
Three practical points round out the contract. First, everything runs inside your browser: the text is never uploaded, never stored, never sent to an API, and never attached to an account. That matters when the draft you are cleaning is client work, an unpublished manuscript or anything else you would not paste into a third-party service. Second, input is capped at one million characters so a very large paste cannot freeze the tab. Third, every line separator — Windows carriage returns and the U+2028 and U+2029 separators that come out of PDFs, InDesign and older Word documents — is folded to a line feed before the rules run, so the output always uses LF line endings and behaves the same as text copied from a web chat.
If you want to see what invisible characters are hiding in your text before you clean them, the Invisible Character tool reveals them locally; if you only want to collapse horizontal spacing without touching anything else, the Whitespace Remover offers three explicit modes for that narrower job.