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
- 1Paste text from any source (Word, Google Docs, Notion, a webpage, a styled bio) into the input panel.
- 2Default settings strip HTML, normalise Unicode, fix smart quotes, and remove invisible chars - turn off any pass you do NOT want.
- 3Toggle Collapse Spaces on if you also want runs of spaces flattened.
- 4Output panel shows the cleaned plain ASCII version.
- 5Click Copy to copy the result.
Keyboard shortcuts
Drive TextResult without touching the mouse.
| Shortcut | Action |
|---|---|
| Ctrl F | Open the find & replace panel inside the input Plus |
| Ctrl Z | Undo the last input change |
| Ctrl Shift Z | Redo |
| Ctrl Shift Enter | Toggle fullscreen focus on the editor Plus |
| Esc | Close find & replace, or exit fullscreen |
| Ctrl K | Open the command palette to jump to any tool Plus |
| Ctrl S | Save current workflow draft Plus |
| Ctrl P | Run 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. &nbsp;, &amp;, &lt;, &gt;, &quot;, &#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 (B) collapse to ASCII width. Ligatures split (fi → 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.
<p>Hello <b>world</b> — “quoted”</p>
Hello world - "quoted"
Settings reference
| Setting / behaviour | Effect on output |
|---|---|
| Strip HTML = on (default) | Every tag removed, text content kept. &-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 é?
cafe. If you want only specific accent removal, use the dedicated remove accents tool.