Text cleaner
Text pasted out of a word processor, a chat window or a language model arrives full of characters that only look like ASCII — curly quotes, em dashes, non-breaking spaces, zero-width joiners — and usually with its line breaks mangled too. Swap every one of them for its plain equivalent, unwrap hard-wrapped paragraphs or put the missing blank lines back, and see exactly which characters were found and what each became.
Paste, type, or drop a file (json, txt, yaml, yml, csv, log).
Characters in
0
Characters out
0
Replaced
0
Lines out
0
En dashes and the rest always become a plain hyphen — they stand in ranges and compounds, where 10--20 would be wrong.
Line breaks stay exactly where they are.
Why this matters
A curly apostrophe is not an apostrophe as far as grep, a diff, a CSV import or a string comparison is concerned — U+2019 and U+0027 are different characters that happen to look alike. The invisible ones are worse: a zero-width space inside an identifier breaks a lookup that appears, on screen, to be exactly right.
One thing is deliberately left alone. A zero-width joiner sitting between two emoji is holding a single character together — remove it and one family becomes four separate people — so those are kept while every other zero-width character goes.