How to use it
- Paste your text into the input box.
- Tick the clean-up steps you want. The most common ones are already switched on.
- Check the result in the output box. It updates every time you change an option.
- Copy the cleaned text, or use it as the new input to clean it again.
How it works
The steps always run in the same order: strip HTML, remove invisible characters, straighten quotes, replace tabs, remove extra spaces, trim lines, collapse blank lines and finally remove line breaks. Windows and old Mac line endings are converted to standard line feeds first.
“Strip HTML tags” works on the text only: the HTML is never rendered or run. It deletes comments and the contents of script, style, template and noscript elements, turns <br> and the end of paragraphs, list items, headings and table rows into line breaks, removes all other tags and then decodes numeric entities and common named ones (&, <, >, ", , — and others). A less-than sign followed directly by a letter, as in “a<b”, looks like a tag and may be removed with what follows it up to the next “>”.
“Remove invisible characters” deletes zero-width spaces (U+200B), word joiners, byte order marks (U+FEFF), soft hyphens, left-to-right and right-to-left marks and embeddings, and control characters other than tab and line feed. These often arrive with text copied from websites, chat apps and PDFs and can break searches, code and spreadsheet formulas. The zero-width joiner and non-joiner are kept, because family and profession emoji and several scripts such as Persian and Hindi need them.
“Remove extra spaces” turns every run of spaces, tabs and non-breaking spaces into one normal space, but leaves line breaks alone. “Remove line breaks” joins all lines into one paragraph, which repairs text copied from PDFs where each line ends with a hard break; with “Keep paragraph breaks” on, blank lines still separate paragraphs. Words hyphenated at the end of a line are not rejoined. Guillemets (« ») and prime marks are not changed by the quote option.
Examples
Text copied from a PDF
A paragraph from a PDF arrives with a line break after every 70 characters. “Remove line breaks” with “Keep paragraph breaks” turns it back into flowing paragraphs you can paste into a document.
A value that will not match
A product code copied from a website fails a spreadsheet lookup because it contains a zero-width space. “Remove invisible characters” deletes it, and the lookup works.
Plain text from HTML
With “Strip HTML tags” on, “<p>Price: 10 €</p><script>track()</script>” becomes “Price: 10 €”: the script is removed with its content, the entities are decoded and the non-breaking space becomes a normal space.
Frequently asked questions
Is it safe to paste HTML from an unknown website?
Yes. The HTML is processed as plain text with pattern matching and shown in a text box. It is never inserted into the page, so scripts in it cannot run.
What are zero-width characters and why remove them?
They are characters with no visible width, such as the zero-width space and the byte order mark. They are invisible on screen but make two identical-looking words different, which breaks searches, duplicate checks and code.
Why are some emoji joiners kept?
Emoji such as 👨👩👧 are several emoji joined by the zero-width joiner, and Persian and some Indian scripts use the zero-width non-joiner to shape words. Removing them would change how the text looks, so they are kept.
Does it fix words broken by a hyphen at the end of a line?
No. A hyphen at the end of a line can belong to the word (as in “well-known”) or only mark a break inside a word, and the tool cannot tell which, so hyphens are left as they are.
Privacy
Cleaning happens only in your browser. The text is not uploaded, stored or included in analytics.