Remove Smart Quotes from Text
Paste text containing curly or typographic quotes and convert every “smart” quote to a plain straight quote in one click. Works entirely in your browser.
Characters: 0
Characters: 0
What are smart quotes and why do they cause problems?
Every modern word processor, publishing tool, and AI writing assistant outputs “typographic” or “smart” quotes: the curly opening and closing quotation marks (“”) and the curly apostrophe (’). They look elegant on a printed page or a polished website, which is exactly why software defaults to generating them. The problem is that they are not the same characters as the straight quotation mark (") and straight apostrophe (') that nearly every programming language, data format, and command-line tool expects.
When you copy a sentence from Microsoft Word, Google Docs, Apple Notes, or a ChatGPT response, curly quotes come with it. Paste that sentence into a JSON value, a CSV field, a shell script, an HTML attribute, or a config file, and you have silently introduced characters that parsers will reject or misread. The failure can be subtle: a JSON string that looks valid to the eye but throws a parse error at runtime; a SQL query where a curly apostrophe in a name produces a syntax exception; a Python f-string that the interpreter treats as unclosed because the closing quote is U+201D instead of U+0022.
The Unicode code points: straight vs. curly
Understanding the difference starts with the code points. The straight double quotation mark is U+0022, the character that appears on the key next to the Enter key on any standard keyboard. The straight single quotation mark and apostrophe share U+0027. These two code points are what every CSV parser, JSON spec, HTML attribute value, and programming language recognizes as quote delimiters.
Smart quotes occupy four distinct slots in the Unicode standard: U+201C (left double quotation mark, “), U+201D (right double quotation mark, ”), U+2018 (left single quotation mark, ‘), and U+2019 (right single quotation mark / curly apostrophe, ’). A fifth pair, U+201E („, a low-9 double mark common in Central European typography) and U+201F (‟, double high-9), appears in German and other European typographic traditions. Guillemets U+00AB («) and U+00BB (») are the French and many European language quote standard. Prime marks U+2032 (′, used for feet and arcminutes) and U+2033 (″, inches and arcseconds) are often produced by autocorrect when you type a straight quote near a number.
This tool converts all of these to their plain ASCII equivalents: the doubles to U+0022 and the singles to U+0027. The visual result looks almost identical to the original in most contexts, but every downstream parser now sees the expected code points.
Where curly quotes come from
Microsoft Word introduced automatic smart-quote substitution decades ago and it has been on by default ever since. When you type a straight quote, Word checks the surrounding context and silently replaces it with the directionally correct curly variant. Google Docs, Apple Pages, LibreOffice Writer, and Notion do the same. The feature is so deeply embedded that most users have never seen it happen, and many do not know the plain-text versions exist.
AI writing tools add a second layer. Models like ChatGPT, Claude, and Gemini are trained on text that already contains typographic punctuation, and their outputs reflect those training-data conventions. A typical paragraph from any of these tools will include curly double quotes around titles or quoted speech and curly apostrophes in contractions. When you copy that output and paste it into a code editor, a terminal, a YAML file, or a database field, you bring the typographic layer along whether you intended to or not.
Email clients are another source. Apple Mail on macOS has smart-quote substitution active by default. A body of text drafted directly in Mail and then pasted elsewhere will carry curly quotes even if you started with plain text. iOS and Android keyboards do the same on mobile.
Where curly quotes cause real failures
JSON is the most frequent arena. The JSON specification (RFC 8259) requires that string delimiters be U+0022. A curly quote at the start or end of a value breaks parsing completely. The error message (“Unexpected token” or “Invalid character”) gives no hint that a typographic character is the cause, because the curly quote looks identical to the straight quote in most monospace editors.
CSV and TSV files can fail in subtler ways. Most parsers treat U+0022 as a quoting character for fields that contain delimiters. A field that starts with U+201C and ends with U+201D will not be recognized as a quoted field; the parser either treats the curly marks as part of the field value or interprets the commas between them as column separators, corrupting the entire row.
HTML attributes present a different failure mode. The value of an attribute like title="She said “hello”" is valid HTML because the quotes inside are different characters from the attribute delimiters outside. But if you are assembling HTML from concatenated strings and a variable contains curly quotes, the generated markup can look fine in a viewer yet carry semantically wrong content that breaks templating logic.
Shell scripts and command-line arguments treat U+2018 and U+2019 as ordinary word characters, not as string delimiters. A command pasted from a document that used curly apostrophes in contractions will produce “command not found” or “no such file” errors that are completely opaque unless you know to check for Unicode punctuation.
WordPress and many CMS platforms store content with typographic quotes and then double-convert on export or API response, producing garbled sequences like “ in places that expected clean text. The reverse also happens: platform-applied smart-quote filters can convert already-straight quotes back to curly, breaking code blocks or shortcodes that contain quote characters.
Spreadsheet formulas in Excel and Google Sheets reject smart quotes used as text delimiters. If you paste =LEFT(“Apple”,3) into a cell, Excel will flag a formula error because U+201C is not the string delimiter it expects.
Straight quotes vs. curly quotes: when each is right
Curly quotes are the correct choice for polished prose intended for human reading: novels, articles, marketing copy, academic papers. They exist specifically because straight quotes are ambiguous — a straight double mark at the start of a phrase looks identical to one at the end. Curly marks provide visual direction at a glance. A reader scanning a printed paragraph never has to decode which quote is opening and which is closing.
Straight quotes are the correct choice for any text that will be machine-processed: source code, markup, data formats, API payloads, configuration files, and anything that a parser or interpreter will read. The reason is simple: parsers are written to the ASCII specification, and only U+0022 and U+0027 carry syntactic meaning in those specifications.
A hybrid workflow that many writers use: draft in a tool that produces typographic punctuation, clean the text when moving it into a technical context. This tool automates that last step so you do not have to remember it or do it character by character.
Smart quotes and Chinese punctuation
Simplified Chinese typography uses the 「」 (U+300C/U+300D, corner brackets) and 『』 (U+300E/U+300F, white corner brackets) for quotation, or in publishing contexts the “” and ‘’ fullwidth variants. These are distinct from both the ASCII straight quotes and the Western typographic curly quotes, and this tool does not convert them. If your text contains Chinese quotation marks that you want to preserve, they will pass through unchanged.
This distinction matters when processing multilingual content. A document that mixes English and Chinese may have Western curly quotes in the English sections and Chinese corner brackets in the Chinese sections. Running the converter will normalize the English sections without affecting the Chinese ones, which is typically the desired behavior.
How to prevent autocorrect from adding smart quotes
In Microsoft Word: File → Options → Proofing → AutoCorrect Options → AutoFormat As You Type. Uncheck “Straight quotes” with “smart quotes” under both the Quotes heading. The setting is per-installation, not per-document.
In Google Docs: Tools → Preferences. Uncheck “Use smart quotes”. This applies to the current document and sets the default for new documents in the same account.
In macOS System Settings: Keyboard → Text Replacements. At the top of the panel, turn off “Use smart quotes and dashes.” This affects the system-wide text substitution layer used by Mail, Notes, and any app that respects the system keyboard settings.
In code editors like VS Code: the editor does not substitute quotes by default, but some language extensions do. If you are seeing curly quotes appear in code, check extension settings for any autocorrect or writing-assistance plugins that may be active.
For AI-generated text, there is no setting to disable: the model will produce typographic punctuation regardless. The conversion step is a natural part of the copy → paste → process workflow when moving AI output into technical contexts.
Your text stays in your browser
The conversion runs entirely as JavaScript inside the page tab. No characters leave your device. There is no server call, no logging of text content, and no analytics that capture the values you enter. Closing the tab clears everything.
You can verify this by opening the browser network panel before pasting your text and watching it while you press Convert Quotes. No outbound HTTP requests are made. The tool processes your text locally and hands the result back to the output box.
For more whitespace and formatting cleanup after converting quotes, the remove extra spaces tool handles double spaces and line padding. For stripping invisible Unicode characters that AI text also introduces, the invisible character remover covers zero-width spaces, directional marks, and soft hyphens. For a broad cleanup of AI-generated formatting in one pass, clean AI text is the right starting point.
Frequently Asked Questions
▸Why does pasting from Google Docs always add curly quotes?
Google Docs applies smart-quote substitution as you type and stores the typographic versions in the document. When you copy from Docs and paste elsewhere, the clipboard carries the stored characters verbatim. The browser clipboard API transfers Unicode codepoints, so U+201C and U+201D come across instead of U+0022. The fix is either to disable smart quotes in Docs preferences before typing, or to convert after pasting using a tool like this one.
▸Will this break apostrophes in contractions like don’t or it’s?
No. U+2019 (right single quotation mark), which is the curly apostrophe your keyboard or word processor inserts in contractions, is converted to U+0027 (straight apostrophe). The straight apostrophe is valid and correct in all contexts. Parsers, search engines, and word processors all accept U+0027 as an apostrophe. The word reads identically; only the code point changes.
▸What about prime marks like feet (′) and inches (″)?
Prime (U+2032) and double prime (U+2033) are included in the conversion: single prime maps to U+0027 and double prime maps to U+0022. This is correct for data-entry contexts where the prime is being used as a unit abbreviation inside a string. If you are producing mathematical or scientific notation where the prime symbol has a specific semantic meaning distinct from a quotation mark, you may want to post-process the output to restore the primes where appropriate.
▸Does this convert guillemets (« ») used in French text?
Yes. U+00AB (left-pointing double angle quotation mark) and U+00BB (right-pointing double angle quotation mark) are both converted to U+0022. If your document is French prose and you want to preserve the typographic style, do not run this tool on it. It is intended for text moving into a technical or data context where only ASCII quote characters are expected.
▸My JSON still fails after converting. What else could cause this?
JSON errors after quote conversion are usually caused by one of three things: a curly quote that was part of a key or value rather than a delimiter (the tool converts all of them, so re-check the output with a JSON validator); a trailing comma after the last item in an array or object (not a quote issue, but a very common JSON syntax error); or an em dash, ellipsis, or other non-ASCII character elsewhere in the value that a strict parser rejects. The <a href="/em-dash-remover" class="text-accent underline underline-offset-2">em dash remover</a> on this site handles that last case.
▸Can I use this tool on code pasted from a blog or documentation site?
Yes, and this is one of its most common uses. Tutorial sites, documentation portals, and technical blogs frequently apply smart-quote styling site-wide via CSS or CMS settings, which sometimes affects inline code blocks as well as prose. If you copy a code snippet from such a site and the straight quotes have been replaced with curly ones, pasting the snippet directly into an editor will produce syntax errors. Run it through this tool first to restore the correct ASCII delimiters.