Smart Quotes Converter

Replace curly quotes, long dashes and ellipses with plain keyboard characters, or typeset straight quotes into proper curly ones. Free and instant.

Word processors and phone keyboards are helpful in a way that causes trouble later. Type a quote mark and you get a curly one. Type two hyphens and you get a long dash. Type three full stops and you get a single ellipsis character. All of these are different characters from the plain ones on a keyboard, and anything that expects the plain ones will fall over on them: a line of code, a JSON file, a spreadsheet formula, a command pasted into a terminal.

If you have ever copied a snippet from a blog post and had it refuse to run with an error about an “invalid character”, curly quotes are the usual cause.

Curly to straight

Choose “Curly to straight” and the tool swaps “ ” „ ‟ for a plain double quote and ‘ ’ ‚ ‛ for a plain apostrophe. With the dash option ticked it also turns an em dash into two hyphens, an en dash into a single hyphen, and the ellipsis character into three full stops. The result is text you can safely drop into code, a CSV, a database field or a plain-text email.

Straight to curly

The reverse is for typesetting: a document written with plain quotes, such as text from a code editor or an old plain-text file, that should look right in print or on a web page. A double quote that follows a space, a bracket or a dash is treated as an opening mark; any other becomes a closing mark. Apostrophes inside words, like “it’s”, become the closing single quote, which is the correct one.

It is a rule of thumb rather than a language parser, so there are two cases where it gets things wrong. A leading apostrophe, as in ’90s or ’twas, should be a closing mark but will come out as an opening one. And a quote at the very start of a line that really is a closing mark, say after a line break mid-quotation, will open. Scan the result for those.

Why this is separate from deleting special characters

You could get rid of curly quotes with remove special characters, but then the words around them lose their apostrophes and “don’t” becomes “dont”. Converting keeps the sentence intact. When quotes are the only problem, convert them; when everything odd needs to go, delete.

For anything more precise, find and replace with a single character works for one-off swaps, and the text to Unicode converter will tell you exactly which character you have when you cannot tell by eye.

A small typographic note

If you are setting text for publishing, use curly quotes and proper dashes. They look better and readers do notice. If you are setting text for a machine, use straight ones. The same piece of writing often needs both versions, which is the reason this goes in both directions.

Frequently asked questions

Why does my code say "invalid character" after pasting from a website?

Almost certainly curly quotes, or a non-breaking space or long dash picked up from the page. Run the code through "Curly to straight" with the dash option on, and also strip hidden characters with the remove special characters tool if the error remains.

Does it handle quotes from other languages?

It handles the common ones: the English curly quotes and the German-style low double quote. Guillemets («»), Japanese brackets and other styles are left as they are.

Will straight to curly get every apostrophe right?

Nearly all. The exceptions are leading apostrophes like '90s and 'tis, which should point the other way. Check any word that starts with an apostrophe.