How It Works

What happens to your text between pressing the button and seeing the result, and what does not happen to it.

Everything runs in your browser

When you open a tool page, your browser downloads the page and a small script. From then on, cleaning is done by that script on your own device. Pressing Clean Text or Remove Line Breaks does not send a request anywhere: the text is read from the input box, transformed in memory and written to the output box.

There is no server-side text processing, no account and no database behind the tools. Once a tool page has loaded, cleaning keeps working even if your connection drops.

The cleaning pipeline

The Text Cleaner applies its steps in one fixed order, whichever order you tick the options in. Each step runs only if its option is on, except the first, which always runs. The same input and the same options always produce the same output.

  1. Line endings. Windows (CRLF) and old Mac (CR) line endings become LF.
  2. HTML tags. Tags are removed; script and style contents are dropped.
  3. HTML entities. Codes such as & are decoded.
  4. Hidden characters. Byte order marks, zero-width spaces, control characters, and Unicode normalization.
  5. Space characters. Non-breaking spaces and tabs become ordinary spaces.
  6. Markdown markers. Code fences, heading markers, list markers, bold and italic markers.
  7. Typography. Quotes, apostrophes, dashes and the ellipsis character.
  8. Line breaks. Lines are joined, replaced or removed; soft hyphens are removed.
  9. Line whitespace. Lines are trimmed, repeated spaces collapsed, blank lines reduced.
  10. Duplicate lines. Later copies of a line are removed; the first is kept.
  11. Find & replace.
  12. Letter case.
  13. Trim. Whitespace at the very start and end of the text is removed.

The order is chosen so that steps help rather than undo each other:

  • Markup comes off before characters are judged, because decoding an entity such as   produces a non-breaking space that still needs converting.
  • Lines are joined before spaces are collapsed, so the joins themselves end up tidy.
  • Duplicate lines are compared after whitespace cleanup, so two lines that differ only by a trailing space count as the same.
  • Find & replace sees the cleaned text, and the final trim runs last.
  • If removing duplicate lines or replacing text leaves a double space or an extra blank line behind, the whitespace rules that are switched on are applied once more, so the result always satisfies them.

After a run, the tool lists what it changed with counts, such as “12 extra spaces removed”. The list contains only changes that happened. There are no scores or ratings.

Line-ending normalization

Text can mark the end of a line in three ways: LF, CRLF or CR. Internally the tools work with LF only, so a mixed file behaves predictably and a blank line is always exactly two line breaks. Results use LF, which every current operating system and editor reads correctly. See CRLF vs LF vs CR for the background.

Unicode handling

Letters, accents, symbols and emoji in any script pass through unchanged. The tools never transliterate or “simplify” characters.

  • Non-breaking spaces (U+00A0, U+202F and U+2007) are converted to ordinary spaces by default, because they look identical to a space but behave differently in searches and formulas.
  • Zero-width spaces, byte order marks and soft hyphens are removed only when their options are on. Some presets switch these on.
  • Zero-width joiner and non-joiner (U+200D and U+200C) are left alone by every preset. They hold emoji sequences together and are required for correct spelling in Persian, Arabic and several Indic scripts. Removing them is a separate, clearly marked option.
  • Bidirectional control characters are never removed by a checkbox, because right-to-left text can depend on them.
  • Normalize Unicode uses form NFC, which merges a letter and a separate accent into a single character where one exists. The text looks the same afterwards.

Character counts are counts of Unicode code points, so an emoji built from several joined characters counts as several. Invisible Unicode characters explained goes through each of these.

HTML handling

“Strip HTML tags” reads the pasted markup as plain characters. It does not build page elements from it, insert it into this page or run it, so scripts and event handlers in pasted HTML have no opportunity to execute. The contents of <script> and <style> elements are dropped rather than shown as text.

  • If the markup has structure — paragraphs, <br>, lists, tables — whitespace is treated as a browser would treat it: line breaks and indentation in the source collapse to a single space, and the structural tags become line breaks.
  • If there are only inline tags such as <b>, your original line breaks are kept.
  • A lone < in ordinary text, as in “a < b”, is left alone.

The result is always plain text placed in a text box. Stripping tags makes text readable; it is not a security filter. Do not treat the output as safe to insert into a web page as HTML. Converting HTML to plain text safely explains why.

What is and is not stored

Data Where it goes
Text you paste or type Stays in the page’s memory. Not uploaded, not logged, not saved. Gone when you close or reload the tab.
Cleaned result Same as above. A download is generated by your browser from the text already in the page.
Find and Replace fields Used for the current run only. Never saved.
Option choices Saved in your browser’s local storage under textfixerr.settings.v1 and textfixerr.linebreaks.v1, so your preset and checkboxes are there next time. “Reset options” deletes them.
Clipboard Read only when you press Paste, and written only when you press Copy. Your browser may ask for permission first. Pasting with the keyboard needs no permission at all.

If you allow optional analytics, this site loads Google Analytics to count page views and a small number of tool events, such as “a clean was run with the PDF Copy preset”. Nothing is sent before that choice. Events carry only the name of a preset, mode or tool and never include your text. It does not currently show advertising. The privacy policy has the full description.

Checking this yourself

You do not have to take this page’s word for it:

  1. Open your browser’s developer tools and switch to the Network tab.
  2. Paste some text and press the tool’s main button.
  3. Watch the request list. Cleaning adds no request that carries your text.

You can also load the page, disconnect from the internet and confirm that cleaning still works. Are online text cleaners private? explains how to run the same check on any site.

Known limitations

  • Joining lines is a heuristic. Paragraphs are recognised by blank lines. Text whose paragraphs are marked only by indentation, and layouts such as poetry, addresses and tables, will not survive line joining.
  • De-hyphenation is a guess. “Rejoin words hyphenated across lines” cannot distinguish a word split for layout from a real hyphenated compound. It is off by default and the result needs a read-through.
  • PDF artefacts are not detected. Page numbers, running headers, footnote markers and columns copied in the wrong order are ordinary text to the tool.
  • Markdown removal is partial by design. Links, images, blockquotes, tables and horizontal rules are not rewritten, because doing so mechanically can change what the text says.
  • HTML entities. The common named entities and all numeric entities are decoded. Rare named entities are left as they are.
  • Very large text is limited by your device’s memory and speed, since nothing is sent to a server to do the work.
  • No tool can tell what you meant. Always read important text after cleaning it.