Text cleaner
Clean pasted text: remove zero-width characters, straighten smart quotes, collapse runaway whitespace and strip tracking from links. It says what it removed.
Your text
Result
What to clean
What it removed
A zero-width joiner holding an emoji together is kept, so cleaning never takes a family emoji apart.
Cleaning text that came out of somewhere else
Text copied from a word processor, a PDF, a chat window or an AI assistant carries things you cannot see. They are harmless until a form rejects the input or a link looks like it came from a marketing campaign.
- Paste the text you copied. Everything runs in the page, so a draft under embargo does not leave the machine to be tidied.
- Leave all four options on for a first pass. The report underneath tells you what each one actually found, which is often nothing.
- Check the removal counts before you trust the output. A count of zero on every line means the text was clean and the problem is somewhere else.
- Turn off the tracking option if the links are yours and the parameters are the point, because a campaign link with its parameters stripped stops attributing.
- Copy the cleaned text out. Paste it as plain text at the far end so the destination does not reintroduce its own smart punctuation.
What each option removes, exactly
Four distinct problems arrive in the same paste, and each one is reported separately so you know which of them you actually had. Vague reassurance that text has been cleaned is worth nothing.
- Zero-width characters: the zero-width space, the non-joiner, the word joiner, the byte order mark, the soft hyphen and the Mongolian vowel separator. They occupy no width and break search, sorting and form validation.
- Smart punctuation: curly double and single quotes, the typographic apostrophe and the prime marks become their straight equivalents, which is what code, CSV files and older form fields expect.
- Whitespace: non-breaking and exotic spaces become ordinary spaces, runs of spaces and tabs collapse to one, trailing spaces at line ends go, and three or more blank lines become one blank line.
- Tracking parameters: utm_source and its family, fbclid, gclid, msclkid, twclid, igshid, mc_cid, mkt_tok, si and the rest of the click identifiers are deleted from any URL in the text.
- The parameter list is explicit rather than a prefix guess, because parameters like ref and s carry real routing on some sites and a cleaner that drops anything short and unfamiliar breaks the links it was asked to tidy.
The zero-width joiner is the one to get right
Stripping invisible characters sounds like a job with no edge cases, and it has exactly one that matters. Most cleaners get it wrong, and you find out when an emoji in your caption falls apart after cleaning.
- U+200D, the zero-width joiner, is what holds a multi-part emoji together. A family emoji is several people with joiners between them, and to a reader it is one picture.
- A cleaner that deletes every zero-width character turns that one picture into four separate people, and the caption is longer and wrong.
- The same applies to profession emoji and to many skin-tone and gender variants, all of which are sequences held together by joiners.
- This tool removes a joiner only where it is not sitting between two pictographic characters, so decorative emoji survive and copy-paste debris does not.
- Variation selectors, which decide whether a symbol renders as text or as a colour emoji, are left alone for the same reason.
- If an emoji does break somewhere downstream, the platform stripped it, not this page: paste the cleaned text back in here and the character count will confirm the emoji is still one character.
What it deliberately leaves behind
A cleaner that removes everything unusual is a cleaner you have to check line by line, which defeats the point. These are the things it sees and chooses not to touch.
- The braille blank, U+2800, is left in place. It has real width and is the character that keeps paragraph spacing alive in a social composer, so removing it would silently undo formatting.
- Line breaks are preserved as structure. Collapsing paragraphs into one block is a different job, and there is a page in this family for it.
- Accents, non-Latin scripts and right-to-left text pass through untouched. Nothing here transliterates or normalises letters.
- Ordinary URLs are returned exactly as they arrived unless they carried a listed tracking parameter, and a link that ends up with no query at all loses its trailing question mark rather than keeping a stub.
- Em dashes, ellipses and other typographic characters stay. They are legitimate punctuation, not paste debris.
You just fixed one post. Now do the month.
The text cleaner solves one piece of one post. OctoSpark plans, writes and schedules the whole calendar across every network you use, publishes it for you, and reports what actually performed.
- One calendar for every network
- Schedule once, publish everywhere
- Drafts written in your own voice
- See what actually performed
No card needed. These tools stay free either way.
Related free tools
- Invisible characterCopy an invisible character that survives a paste: braille blank, Hangul filler, zero-width space, word joiner, non-breaking space. Each says where it works.
- Remove line breaksStrip the line breaks out of pasted text and join it back into flowing prose, keeping paragraph gaps if you want and collapsing the leftover double spaces.
- Find and replaceFind and replace text in your browser, with match case and whole word options and a count of every change. The search is literal, so dots mean dots exactly.
- UTM link generatorBuild trackable campaign URLs with consistent source, medium and campaign values.
Frequently asked questions
How this tool works, what it cannot do, and what happens to what you put into it.
What are zero-width characters and how did they get into my text?
They are characters with no visible width, used for line-break hints, text direction and joining emoji. They arrive when you copy from a PDF, a word processor, a rendered web page or a chat client, and they cause trouble later when a form rejects the input or a search for a word fails because there is an invisible character in the middle of it.Why is my emoji still intact after cleaning?
Because the tool checks each zero-width joiner before removing it. A joiner between two pictographic characters is doing real work, holding a multi-part emoji together, so it is kept. A joiner anywhere else is copy-paste debris and is removed, and the report counts how many went.Which tracking parameters does it strip from links?
The whole utm_ family plus fbclid, gclid, dclid, gbraid, wbraid, msclkid, twclid, yclid, igshid, igsh, mc_cid, mc_eid, mkt_tok, si, ref_src, _ga and a few smaller ones. The list is explicit and the count of removals is shown, so you can see whether a link was actually carrying anything.Can stripping parameters break where a link goes?
For the parameters on this list, no: they identify a campaign or a click, not a page, so the destination is unchanged. Turn the option off if the links are your own campaign links, because stripping them is exactly what stops the visit being attributed to the campaign that earned it.Is my data private?
Yes. This tool does its work in your browser, so whatever you type, paste or upload stays on your device. Nothing is sent to our servers, which is also why it keeps working if you go offline after the page has loaded.Is this really free?
Yes. Every tool here is free with no account, no credit card and no usage cap. They exist so that the people who need our scheduling product find us, which only works if the tools are genuinely useful on their own.Do I need an account?
No. Open the page and use it. An account is only for OctoSpark itself, where you plan, schedule and publish a whole calendar rather than fixing one post at a time.Can I use the output commercially?
Yes. Anything you produce here is yours, including for client and commercial work. We claim no rights over it and we do not watermark it.