Skip to content

Typography Cleaner

Normalize smart quotes, em dashes, ellipses, and invisible whitespace

Strip curly quotes, em dashes, smart ellipses, non-breaking spaces, and zero-width characters introduced by Word, Google Docs, LLMs, or rich-text editors. Or go the other direction for typography-correct prose. Code blocks are preserved.

9 replacement(s)

Transforms

Fenced code blocks and inline `code` spans are preserved untouched.

How to use the typography cleaner

  1. Paste Markdown or any plain text — pasted from Word, Notion, Google Docs, an LLM, or anywhere typography may have been auto-corrected.
  2. Toggle the transforms you want applied. The defaults strip smart quotes, normalize em dashes to --, ellipses to ..., and remove NBSP and zero-width characters.
  3. The output updates in real time. Copy when ready.

What each transform does

TransformExample
Smart quotes → straight"Hello" and 'world'"Hello" and 'world'
Straight → smart quotes"Hello""Hello"
Em dash → double hyphenlike — thislike -- this
Double hyphen → em dashlike -- thislike — this
Ellipsis → three dotswait…wait...
Three dots → ellipsiswait...wait…
NBSP → regular spaceinvisible NBSP → regular space
Strip zero-width charactersinvisible ZWSP / ZWJ / BOM → removed

Common scenarios

  • A teammate pastes Word output into a Markdown PR. Run the cleaner, commit clean ASCII.
  • An LLM returns text with curly quotes. Pipe it through the cleaner before storing.
  • A search-and-replace mysteriously misses items. Likely a zero-width character; strip it.
  • CI flags a string mismatch. Likely NBSP vs space; normalize and re-run.

What it doesn't do

  • Spell check. Use a dedicated tool for grammar / spelling.
  • Reformat Markdown structure. For that, use the Markdown Formatter.
  • Remove emoji. Emoji are intentional — emoji-stripping is out of scope.

Companion tools

Privacy & data

The cleaner is a small client-side script. Your text never leaves the browser.

Frequently asked questions

Why do smart quotes cause problems?
Word, Google Docs, and macOS auto-replace straight `"` and `'` with curly equivalents. Those curly characters are different Unicode code points, which means search-and-replace, code compilers, JSON parsers, and shell commands often fail when curly quotes sneak into source. Normalizing to straight ASCII once removes the entire class of bug.
What if I want smart quotes for prose?
Toggle the reverse transform on (Straight → smart quotes). The tool will replace ASCII quotes with typographically correct curly versions. Heuristics decide opening vs closing based on whitespace context — they get the common cases right and may need manual touch-up around contractions.
Does it touch code?
No. Fenced code blocks and inline backtick spans are stashed before transformation and restored afterwards. Smart quotes pasted into a code sample stay exactly as they were.
What's the deal with zero-width characters?
Pasted text from rich-text editors and certain web sources often includes zero-width spaces, joiners, and BOM markers. They're invisible but they break filename comparisons, search-and-replace, and serialization. The 'strip zero-width' transform removes them all.
Will my Markdown be uploaded?
No. The transforms are tiny client-side string replacements. Nothing leaves the browser tab.
Why provide both directions for dashes / ellipsis?
Different publishing pipelines have opposite preferences. ASCII purists (engineering docs, READMEs) want `--` and `...`. Typography-conscious publishers (long-form blogs, books) want `—` and `…`. Pick the direction you need.