Plain text converter

Plain text converter is the swiss-army cleaner: paste text from any rich source (Word, Google Docs, Notion, copy-paste from a webpage, social-media bios styled with Unicode tricks) and get plain ASCII back. The tool runs five normalisation passes you can toggle individually: strip HTML tags, normalise Unicode lookalikes back to ASCII, swap smart quotes / em-dashes / ellipsis for ASCII equivalents, remove zero-width and other invisible characters, and optionally collapse whitespace runs. The transformation runs in your browser; nothing uploads.

Input
Line 1:1 LF cloud_done Saved locally
Result Plain Text Converter
0 lines 0 chars

Five passes that turn rich text back into ASCII

When you copy text from a styled source, you usually get more than the visible letters. HTML pasted from a webpage carries <b>, <span>, and <a> wrappers. Word and Google Docs auto-replace straight quotes (") with curly quotes (", ") and double-hyphens with em-dashes (). Social-media bios styled with the Unicode text converter use Mathematical Alphanumeric codepoints (𝐁 for bold B). And anti-spam systems sometimes pad text with zero-width characters to make duplicate-detection harder.

Plain text converter runs five passes in order: Strip HTML removes every tag and decodes basic entities; Unicode to ASCII runs an NFKD normalisation pass that decomposes most lookalike codepoints back to their ASCII basis; Smart Quotes swaps curly quotes / em-dashes / en-dashes / ellipsis / bullets for ASCII equivalents (", -, ..., *); Remove Invisible strips zero-width chars and other "blank" Unicode codepoints; Collapse Spaces (off by default) flattens runs of whitespace.

Each pass is a toggle so you can use the tool as a focused cleaner: turn off Smart Quotes if you want to keep them, turn off Strip HTML if you want to keep tags, etc. The default settings cover the most common "make this paste-able" workflow.

How to use plain text converter

  1. 1Paste text from any source (Word, Google Docs, Notion, a webpage, a styled bio) into the input panel.
  2. 2Default settings strip HTML, normalise Unicode, fix smart quotes, and remove invisible chars - turn off any pass you do NOT want.
  3. 3Toggle Collapse Spaces on if you also want runs of spaces flattened.
  4. 4Output panel shows the cleaned plain ASCII version.
  5. 5Click Copy to copy the result.

Keyboard shortcuts

Drive TextResult without touching the mouse.

Shortcut Action
Ctrl FOpen the find & replace panel inside the input Plus
Ctrl ZUndo the last input change
Ctrl Shift ZRedo
Ctrl Shift EnterToggle fullscreen focus on the editor Plus
EscClose find & replace, or exit fullscreen
Ctrl KOpen the command palette to jump to any tool Plus
Ctrl SSave current workflow draft Plus
Ctrl PRun a saved workflow Plus

What this tool actually does

Strip HTML tags + decode common entities

Every <tag> is removed; the text content between tags is kept. &amp;nbsp;, &amp;amp;, &amp;lt;, &amp;gt;, &amp;quot;, &amp;#39; are decoded back to their plain forms. Script and style block contents are dropped entirely (they would otherwise leak code into the output).

Unicode normalisation (NFKD)

Runs the input through Unicode NFKD canonical decomposition. Mathematical Alphanumeric codepoints (𝐁, 𝐢) decompose to ASCII basis. Fullwidth chars () collapse to ASCII width. Ligatures split (fi). After decomposition, combining accent marks are stripped. The result is plain ASCII basis letters wherever the source had a Unicode lookalike.

Smart-quote and dash replacement

Curly quotes (""'') become straight quotes. Em-dash () and en-dash () become hyphens. Horizontal ellipsis (...) becomes three dots (...). Bullets (, ·) become asterisks. This pass is critical for code or config copied from styled docs that need to compile.

Zero-width / invisible character removal

Strips Zero-Width Space (U+200B), Zero-Width Non-Joiner (U+200C), Zero-Width Joiner (U+200D), Mongolian Vowel Separator, Word Joiner, BOM, and other invisible filler characters. Receivers that suspect their input has been padded with anti-spam invisibles can use this pass to clean up.

Optional whitespace collapse

Off by default (it is destructive). When on, runs of spaces and tabs collapse to one space, and runs of three or more newlines collapse to a paragraph break (two newlines). Useful for tightening text after the other passes leave gaps behind.

Worked example

Default options: HTML stripped, em-dash flattened to hyphen, curly quotes flattened to straight quotes.

Input
<p>Hello <b>world</b> — “quoted”</p>
Output
Hello world - "quoted"

Settings reference

Setting / behaviour Effect on output
Strip HTML = on (default) Every tag removed, text content kept. &amp;-entities decoded. <script> and <style> blocks dropped entirely.
Strip HTML = off Tags pass through verbatim. Useful when you only want quote/Unicode cleanup.
Unicode to ASCII = on NFKD normalisation + combining-mark strip. 𝐁𝐨𝐥𝐝 becomes Bold. café becomes cafe.
Unicode to ASCII = off Unicode lookalikes pass through. Use when you want to keep accented letters.
Smart Quotes = on "hello" becomes "hello"; em—dash becomes em-dash; ... becomes ....
Remove Invisible = on Strips zero-width, BOM, and word-joiner characters. Useful for anti-spam-padded text.
Collapse Spaces = on (off by default) Runs of spaces flatten to one space; 3+ newlines flatten to a paragraph break.

FAQ

Why is my "café" still showing the é?
You probably have Unicode to ASCII turned off. Turn it on and the NFKD normalisation pass will strip combining accents, leaving cafe. If you want only specific accent removal, use the dedicated remove accents tool.
Will this break my source code?
It will replace smart quotes with straight quotes (which is what you want for code), em-dashes with hyphens, and strip zero-width characters. It will NOT change ASCII characters, code structure, or string content. Indentation is preserved unless you turn on Collapse Spaces.
How is this different from "remove HTML tags"?
Remove HTML tags only strips tags. Plain text converter strips tags AND normalises Unicode AND fixes smart quotes AND removes invisible characters - it is the multi-pass cleaner you reach for when text is messy in several ways at once.
Why does the output sometimes have extra spaces?
Stripping HTML or removing invisible characters can leave whitespace where the tags or zero-width chars used to be. Turn on Collapse Spaces to flatten those runs, or pipe the output through remove extra spaces.