Straight → Smart Quotes
Convert straight ASCII quotes to typographic curly quotes, picking opening vs closing by context.
About Straight → Smart Quotes
This tool replaces plain ASCII quotes ( " and ' ) with the appropriate curly typographic variants ( “ ” ‘ ’ ), choosing opening versus closing based on the surrounding context. The result is publication-quality typography suitable for prose, blog posts, and printed material — but unsuitable for code, JSON, or anything that expects ASCII quotes.
When to use it
- Polishing prose for a blog post or article before publishing
- Producing print-ready output from a plain-text source
- Adding typographic quotes to a Markdown document for a static site
- Sprucing up plain-text quotes in email signatures or marketing copy
How it works
A pair of regex passes inspect each quote in context. A double quote at the start of the string or after whitespace becomes “ (left double); one before whitespace, punctuation, or end becomes ” (right double). The same logic applies to single quotes. Apostrophes in contractions (don't → don’t) are handled because the apostrophe sits between letters and follows the right-single rule.
Examples
"Hello," she said. It's a test.
“Hello,” she said. It’s a test.
Frequently asked questions
- Is the opening/closing detection perfect?
- It handles the common cases — sentence-initial quotes, quoted phrases between words, contractions like don't and it's. Pathological inputs (nested quotes of the same type, quotes adjacent to non-word characters in unusual ways) may need manual correction.
- Can I round-trip with the straightener?
- Yes. Run smart-to-straight-quotes on the output and you'll get back ASCII quotes. The original whitespace and surrounding characters are unchanged.
- Are nested quotes of the same kind handled?
- Nested double quotes inside double quotes are unusual in English typography. If your text has them, the converter may pick the wrong pair — manually adjust if needed.
- What style of typographic quotes does it use?
- English/American style: “ ” for outer double quotes and ‘ ’ for inner single quotes / apostrophes. For French (« »), German („ ") , or other locales, post-process or use a locale-aware library.