AI Text Cleaner: Remove Em Dashes, Markdown, Emojis and Hidden Characters
Paste ChatGPT, Claude or Gemini output and get clean plain text: em dashes fixed, markdown stripped, emojis and hidden characters removed. Runs in your browser.
Changes made: none yet
Options
Number ranges like 2019–2024 become 2019-2024.
Links: Tables:
What the AI phrasing filter removes
Nothing else is touched. It never rewrites sentences or removes anything that is not on this list.
Why AI text needs cleaning before you paste it
Every chatbot writes for its own chat window, not for the place you are about to paste into. The window renders markdown, so the model leans on **bold** labels, # headings and bulleted lists because they look tidy there. The moment you press copy, most apps receive the raw symbols instead of the styling. Word, Outlook, Slack, LinkedIn, Notion comments, CRM notes and web forms then show a line of asterisks and pound signs that scream "pasted from a bot".
Em dashes are the second tell. Large language models use them far more than most people do, often two or three per paragraph. Readers have learned to notice, and editors, teachers and hiring managers now treat a dash-heavy draft with suspicion. Replacing them with commas or splitting the sentence removes the tic without changing the meaning.
The third problem is invisible. AI output and copied web text can contain zero-width spaces, soft hyphens, word joiners, byte order marks and direction marks. You cannot see them, but software can: form validators reject an email address that contains a zero-width space, a spreadsheet VLOOKUP fails to match two cells that look identical, a password field says the entry is wrong, and plagiarism or AI-detection tools flag the unusual characters. Some tools deliberately insert these characters as watermarks. Stripping them makes the text behave like text again.
Finally there are emojis and typographic symbols. A rocket or a checkmark is fine in a group chat and wrong in a contract, a support ticket or a résumé. Curly quotes and non-breaking spaces look right in prose but break code samples, CSV imports and JSON. The cleaner converts those to their plain ASCII equivalents so the text survives wherever it goes.
Step by step for the most common workflows
ChatGPT to Word
- Copy the answer in ChatGPT with the copy icon, or select the text and press Ctrl+C.
- Click Paste from clipboard above, or click into the input box and press Ctrl+V.
- Leave the default options on. If you want the bullets preserved as bullets, tick keep list markers.
- Click Copy as plain text for Word / Google Docs, switch to Word and paste. Because the clipboard now holds plain text, Word applies your document's own style rather than importing stray formatting. Use Word's Home > Bullets if you want real bullets afterwards.
Claude to email
- Paste the reply into the input box. Claude output tends to have headings, bold lead-ins and em dashes, so the markdown and dash options do most of the work.
- Optionally turn on the AI phrasing filler option to drop lines like "I hope this helps!" and "Let me know if you need anything else."
- Read the output once, then copy it into Outlook, Gmail or Apple Mail. Plain text pastes cleanly into both rich-text and plain-text composers.
Gemini to a LinkedIn post
- LinkedIn does not render markdown at all, so asterisks and pound signs appear exactly as typed. Paste the draft here and let the markdown option strip them.
- Decide about emojis. The emoji option removes them all; untick it if you want to keep a few on purpose, or use the emoji remover to replace them with placeholders you can edit by hand.
- Keep line breaks. LinkedIn treats a blank line as a paragraph break, and the whitespace option keeps single blank lines while removing runs of them.
Pasting into Excel or Google Sheets
- If the AI gave you a table, the markdown option converts it to tab-separated rows, which Excel and Sheets split into cells automatically when pasted. For more control, including CSV download and multiple tables, use the Markdown Table to Excel converter.
- Keep the hidden-character and typography options on. Non-breaking spaces and curly quotes are the usual reason a number pastes as text or a lookup fails.
- For a list of values that should land in one column, use remove all line breaks only if you want them in a single cell.
The invisible characters this tool removes
| Code point | Name | Why it matters |
|---|---|---|
| U+200B | Zero-width space | Invisible word break; the most common stowaway in copied web and AI text |
| U+200C | Zero-width non-joiner | Prevents ligatures; invisible in Latin text |
| U+200D | Zero-width joiner | Glues emoji into sequences; stray ones are invisible |
| U+2060 | Word joiner | Invisible no-break point |
| U+FEFF | Byte order mark | File-encoding marker that sneaks into pasted text |
| U+00AD | Soft hyphen | Invisible until a line wraps; breaks search and matching |
| U+200E, U+200F, U+061C | Left-to-right, right-to-left and Arabic letter marks | Invisible direction hints |
| U+202A to U+202E | Bidi embedding and override controls | Can reverse the visual order of characters |
| U+2066 to U+2069 | Bidi isolate controls | Newer members of the same family |
| U+2061 to U+2064 | Invisible mathematical operators | Function application, invisible times, separator and plus |
| U+180E, U+034F | Mongolian vowel separator, combining grapheme joiner | Render as nothing |
| U+115F, U+1160, U+3164, U+FFA0 | Hangul fillers | Render as blank; used to fake empty names |
| U+0000 to U+001F, U+007F to U+009F | C0 and C1 control codes | Removed except tab, line feed and carriage return |
| U+E0000 to U+E007F | Tag characters | Invisible; sometimes used to hide or watermark text |
| U+FE0E, U+FE0F | Variation selectors | Removed only when not attached to an emoji |
| U+00A0, U+202F, U+2007, U+2000 to U+200A | Non-breaking and fixed-width spaces | Converted to ordinary spaces by the typography option |
The "changes made" line under the output tells you exactly how many of each were found, which is a quick way to check whether a document that "looks fine" was carrying anything hidden.
Privacy
Nothing leaves your browser. The page is static HTML plus one script file; there is no upload, no server-side processing, no account and no analytics. Your option choices are saved in your browser's local storage so they are remembered next time, and that is the only thing stored. You can verify this by opening your browser's network panel: after the page loads, no further requests are made no matter how much text you paste.
Frequently asked questions
Does this AI text cleaner send my text to a server?
No. The page loads a single JavaScript file and every cleaning step runs inside your browser tab. You can turn off Wi-Fi after the page loads and it still works. Nothing you paste is stored, logged or transmitted.
Why does my pasted ChatGPT text have asterisks and pound signs?
Chat interfaces render markdown, so **bold** shows as bold and # Heading shows as a heading. When you copy the text, many apps receive the raw markdown source instead, and Word, Outlook, Slack or LinkedIn display the symbols literally. The markdown option strips the symbols and keeps the words.
What does it do with em dashes?
By default every em dash (and en dash used as a dash) becomes a comma with one space, so fast — reliable turns into fast, reliable. A dash at the start or end of a line is simply removed. You can switch to a spaced hyphen, split the sentence at the dash, or delete the dash outright. En dashes between numbers such as 2019–2024 are kept as ordinary hyphens.
Will removing hidden characters change how the text reads?
No. Zero-width spaces, soft hyphens, word joiners, byte order marks and direction marks have no visible width, so the cleaned text looks identical. What changes is that search, form validation, copy-matching and spreadsheet lookups start working, because the invisible characters no longer break the match.
Does it remove every kind of emoji?
It removes standard emoji, flag pairs, keycap sequences like 1️⃣, skin-tone modifiers, and multi-person ZWJ sequences such as the family emoji as one unit. Symbols that are usually text, such as the copyright and trademark signs, are converted to (c) and (TM) rather than deleted.
Can I keep the bullet points?
Yes. Under the markdown option, tick keep list markers and lines that start with -, * or 1. stay as they are while bold, italic, headings, links and code fences are still cleaned.
Is the AI phrasing filter safe to use?
It is off by default and deliberately conservative. It only removes a short, visible list of patterns: openers like Certainly!, sentences that start with Great question, I hope this helps, As an AI or Let me know if, intro lines that end with a colon, and the lead-in words In conclusion,. Always read the output before you send it.
What is the difference between Copy and Copy as plain text?
Nothing in practice. Both put the cleaned output on your clipboard as plain text with no formatting, which is exactly what Word, Google Docs and email clients need to paste without stray styles. The second button exists so people looking for that workflow know this is the one to press.
Last updated 2026-09-15. Everything on this page runs in your browser. Nothing you type or upload leaves your device.