Text cleaner
Paste text from a PDF, Word document, email or web page. You get plain text back with the usual problems fixed. Everything runs on your device.
Cleaner
What each option does
Text copied from documents often carries characters that look normal but break things. A curly “quote” is a different character (U+201C) from the straight quote (U+0022) that code, CSV files, spreadsheets and many forms expect.[1] The options fix these problems in a fixed order:
- Line endings. Windows (CRLF) and old Mac (CR) line endings become plain line feeds.
- Invisible characters. Zero-width space U+200B, zero-width non-joiner and joiner U+200C/U+200D, word joiner U+2060 and the byte-order mark U+FEFF[1] are removed, along with the soft hyphen U+00AD.[2]
- Ligatures (off by default). Applies Unicode compatibility normalization (NFKC), which turns fi into "fi".[3] See the caution below.
- Odd spaces. No-break space U+00A0 and the U+2000–U+200A, U+202F, U+205F and U+3000 spaces become ordinary spaces.
- Quotes. “ ” „ ‟ and the double prime become ". ‘ ’ ‚ ‛ and the prime become '.[1] Guillemets « » ‹ › change only if you tick that box.
- Dashes. Hyphen U+2010, non-breaking hyphen, figure dash, en dash and minus sign U+2212 become "-". Em dash and horizontal bar become "--".
- Ellipsis. The single character … (U+2026) becomes three periods.
- Trailing spaces at the end of each line are removed.
- Hyphenated line ends (off by default). "mid-↵dle" becomes "middle". This only happens when the next line starts with a lowercase letter.
- Line breaks. "Keep paragraphs" joins the lines inside each paragraph with a space and keeps blank lines between paragraphs. "Remove all" makes one long line.
- Runs of spaces inside a line become one space. Indentation at the start of a line is kept.
- Duplicate lines. Each later copy of a line is removed and the first is kept, so the order stays the same. Spaces at the ends of a line don't count, and blank lines are never treated as duplicates.
- Blank lines. Either at most one in a row, all removed, or left alone. Blank lines at the very start and end are dropped unless you choose "keep".
- Case. Applied last.
Worked examples
1. Copied from a word processor
Input: “It’s fine,” she said—twice…
Output with the defaults: "It's fine," she said--twice...
That is 4 quotes straightened, 1 dash replaced and 1 ellipsis expanded.
2. A paragraph copied from a PDF
Input (three lines): The results were / consistent across all / three trials.
With "Remove line breaks, keep paragraphs": The results were consistent across all three trials.
3. A list with repeats
Input lines: apple, Banana, apple, banana. Remove duplicate lines gives apple, Banana, banana. Add "Ignore case" and you get apple, Banana.
Edge cases and cautions
- Code. Straightening quotes is usually what code needs. Don't use Title or Sentence case on code, because it changes identifiers.
- Em dashes. "--" is a plain-text convention. If you'd rather have " - ", untick Dashes and replace them yourself.
- Hyphen rejoining can merge words that really were hyphenated across a line ("well-↵known" becomes "wellknown"). It is off by default for that reason.
- NFKC does more than fix ligatures. It also turns ² into 2, ½ into 1⁄2 and full-width letters into normal ones. The Unicode standard warns that it should not be applied blindly.[3]
- Title Case uses a simple rule. It capitalizes each word and keeps short words (a, an, the, and, but, or, for, of, in, on, at, to, by…) lowercase unless they come first, come last or follow a colon. Style guides such as AP and Chicago differ in the details, so check headlines by eye.
- Sentence case lowercases everything, then capitalizes the first letter of each sentence and the word "I". Proper nouns (London, Excel) will need fixing by hand.
- Apostrophes become ' just like closing single quotes, because both use the same character (U+2019).[1]
- Very large pastes (millions of characters) work, but the cleaner waits until you pause typing before it runs.
Sources
- The Unicode Consortium, code chart "General Punctuation, Range 2000–206F" (quotes, dashes, ellipsis, spaces, zero-width characters). unicode.org/charts/PDF/U2000.pdf. Checked 2026-10-24.
- The Unicode Consortium, code chart "C1 Controls and Latin-1 Supplement, Range 0080–00FF" (no-break space U+00A0, soft hyphen U+00AD, guillemets). unicode.org/charts/PDF/U0080.pdf. Checked 2026-10-24.
- Unicode Standard Annex #15, "Unicode Normalization Forms" (NFKC; the fi to fi example; "must not be blindly applied to arbitrary text"). unicode.org/reports/tr15. Checked 2026-10-24.
Also try the paper weight converter.