Text Cleaner
Paste from Word, Google Docs, a PDF or a chat window. That is where these characters come from.
- Curly double quotes straightened : 2
- Zero-width and bidirectional characters removed : 1
- Non-breaking and exotic spaces replaced : 1
Text copied out of Word, Google Docs, a PDF or a chat window carries characters that look ordinary and are not: curly quotes, em dashes, non-breaking spaces and zero-width marks. This finds them, replaces them with their plain equivalents, and tells you how many of each it changed.
How it works
Each option is a targeted substitution rather than a blanket strip, so the text keeps its content while losing the characters that break things downstream.
- Curly quotes become straight ones. A curly apostrophe in a code string or a CSV field is a different character from the straight one and will not match.
- Em and en dashes become hyphens, and the single-character ellipsis becomes three full stops.
- Invisible characters (zero-width spaces, bidirectional marks, control characters) are removed entirely. These survive copy-paste unseen and then break string comparisons and URL slugs.
- Non-breaking spaces and the exotic Unicode spaces become ordinary spaces. A non-breaking space is not matched by a normal space in a search.
- Repeated punctuation can be collapsed, turning "really!!!" into "really!".
Nothing is guessed at. The report lists exactly which substitutions ran and how many characters each one touched, so an unexpected result is traceable rather than mysterious.
Examples
Text pasted from a word processor
Text
“Smart quotes” and an em: dash
Result
"Smart quotes" and an em-dash
Two curly double quotes and one em dash replaced. This is the exact set of characters that breaks a CSV import or a JSON string.
A hidden zero-width character
Text
A word with a zero-width space inside it
Result
The word joins up; the report shows 1 character removed
Nothing looks different, which is why this one is worth running before you wonder why a lookup fails on a value that appears correct.
A non-breaking space
Text
Copied from a web page
Result
Replaced with an ordinary space
Search and replace in most editors will not match a non-breaking space with a normal one, so a find that should work simply returns nothing.
Frequently asked questions
What exactly is an invisible character and why does it matter?
Zero-width spaces, bidirectional marks and stray control characters occupy no visual width but are real characters in the string. They break exact-match lookups, produce broken URL slugs, and make two values that look identical compare as different.
Will this ruin my formatting?
It removes typographic characters and replaces them with plain equivalents, which is a downgrade in appearance and an upgrade in compatibility. Run it on text heading for code, a CSV or a plain-text field, not on text heading for print.
Why replace an em dash with a hyphen?
Because an em dash is a non-ASCII character that can render as a question mark or a mojibake sequence in a system with the wrong encoding. If your destination handles UTF-8 correctly, leave the option off. The em dash is the better typography.
Does it remove line breaks or extra spaces?
No. It works on individual characters within lines. For line breaks use the line-break tool, and for runs of spaces and indentation use the whitespace remover.
Why does the report show changes when the text looks the same?
Because the characters that changed were invisible or nearly so, a non-breaking space replaced by a normal one looks identical. The count is the only evidence, which is precisely why it is shown.