100% local — your data never leaves your browser

CSV Unescape — Read the Cell as It Was Written

Undo RFC 4180 field quoting: drop the enclosing quotes and turn each doubled quote back into one, so you see the value a spreadsheet stored.

Instant Private Zero cookies

CSV Escaped input

Text output

What this tool does

It undoes the RFC 4180 field rule. If the text starts and ends with a double quote, the enclosing pair is removed and each doubled quote inside becomes a single one: "He said ""hi""" gives back He said "hi".

If it does not start and end with a quote, it comes back untouched. That is deliberate rather than a gap: an unquoted field is already its own value, and a""b with no enclosing pair means a literal a""b, because the doubling rule only applies inside a quoted field.

When you need it

Reading a raw CSV line by eye, or checking what a spreadsheet actually stored in a cell that shows up full of quotes. It is also the quickest way to confirm that a field was quoted correctly rather than quoted twice.

What it does not do

It handles one field, not a row and not a file. There is no delimiter to choose here: quoting is what the tool reverses, and the delimiter only mattered when deciding to quote in the first place.

Line breaks inside the quoted field are preserved. They are legal CSV — part of the value, not the start of a new record — and they come back as they were.

Private by design

Everything runs locally in your browser with JavaScript. Your data is never uploaded, which makes the tool safe for sensitive content, and it keeps working offline.

Frequently asked questions

Why did my text come back unchanged?
Because it has no enclosing quotes, so it is already a literal value. An unquoted CSV field means exactly what it says — there is nothing to undo.
Can I paste a whole row?
No. The tool reads one field. Paste `"a","b"` and it sees a single quoted field, strips the outer pair and gives you `a","b`. Split the row on its delimiters first.
Is it the exact inverse of CSV escape?
Yes, for anything the escape step produced. Run a field through escape and then unescape and you get the original text back, delimiter choice included.

Related converters