Skip to content
ZeroServer.tools

JSON Escape / Unescape

Escape text into a JSON string literal, or decode an escaped string back to readable text.

Escaped string

Escaping and unescaping JSON strings

Escape turns raw text into a valid JSON string body — a double quote becomes \", a newline becomes \n, a tab becomes \t, and (optionally) any non-ASCII character becomes a \uXXXX sequence. Unescape does the reverse: paste a string full of \uXXXX, \n or \tescapes — a log line, an API payload, a stringified blob — and get clean, readable text back. Decoding is lenient, so stray quotes and raw line breaks don't break it.

Need a different flavour? The Unicode escape converter focuses purely on \uXXXX code points, the backslash escape converter handles generic string escaping, and Base64 encodes binary-safe payloads. Everything runs entirely in your browser.

Built and maintained by Meet Shah · Last updated

What this tool is used for

  • Turning a multi-line block into a valid JSON string value.
  • Reading an escaped string from a log back into what it contains.
  • Embedding a code snippet inside a JSON payload.
  • Checking whether a value has been escaped twice somewhere in a pipeline.
  • Producing a JSON literal from text containing quotes and newlines.

Frequently Asked Questions

Which characters must be escaped in a JSON string?
The double quote, the backslash, and every control character below U+0020. JSON defines short escapes for backspace, form feed, newline, carriage return and tab, and everything else in that range must use the `\u00XX` form.
Does the forward slash need escaping?
No — `\/` is permitted but never required. It exists because embedding JSON inside an HTML `<script>` block could otherwise produce a literal `</script>` and terminate the element early, which is a real problem with an escaping solution rather than a JSON rule.
How are characters outside the BMP escaped?
As a surrogate pair — an emoji becomes two `\uXXXX` sequences, because the `\u` escape only holds 16 bits. That is why an escaped emoji looks like two garbage codes and why splitting an escaped string blindly can leave half a pair behind.
When do I need to escape JSON twice?
When a JSON document is carried as a string value inside another JSON document — a common shape in message queues and webhook payloads. Each level doubles every backslash, which is why the nested value ends up with `\\"` sequences that look wrong and are correct.
Is escaping the same as encoding?
No. Escaping makes a character safe inside a JSON string literal; encoding turns text into bytes. A UTF-8 document needs no `\u` escapes at all for non-ASCII characters — they are legal literally — so escaping them is a compatibility choice rather than a requirement.

Common errors and gotchas

  • Double escaping, where a backslash becomes two and the consumer sees a literal backslash.
  • Forgetting that a literal newline is illegal inside a JSON string and must be escaped.
  • Assuming the JSON escape set matches another language's, which it does not.
  • Leaving a lone surrogate after escaping, which is invalid and gets replaced downstream.
  • Escaping a value that the JSON serialiser will escape again.

Related Encoders & Decoders tools

Private & free — this tool runs entirely in your browser.

IndieKitShip your Next.js startup in days.affiliate