Two escape modes: minimal, or ASCII-safe with \\uXXXX
Minimal escaping for readability, ASCII-safe for transport channels that assume 7-bit text — pick per output, not per tool.
Escaping JSON for embedding inside a string literal has exactly one correct minimum: quotes, backslashes, and control characters. But a second use case kept appearing — pushing the escaped text through a channel that assumes plain 7-bit ASCII (legacy protocols, some log shippers, older email pipelines) — and there, a literal 键 or é breaks the transport even though it is perfectly valid JSON.

Two modes, one switch
- Minimal (default) — escapes only what JSON requires. Output stays readable and short; CJK, accented text, and emoji pass through as themselves.
- ASCII-safe — additionally converts every non-ASCII code point to
\uXXXX. The result is pure 7-bit text that survives any channel, and still decodes to the identical string on the other side.
Both modes validate the input first (escaping garbage in is still garbage out) and both round-trip exactly — paste the ASCII-safe output into the unescaper and you get the original back, character for character.
How to use it
Open the escaper, paste your JSON, and pick the mode from the dropdown above the input. The output updates live, so flip between modes and compare sizes before copying.
Both transports, one dropdown
“Minimal” and “ASCII-safe” serve different transports, and a single-purpose tool forces you to post-process with a script at exactly the wrong moment. Both modes live behind one dropdown here, both validate their input first, and both round-trip exactly through our unescaper — so the tool is the last stop, not a middle step.
Try it in your browser
Every tool on JSON Formatter App runs 100% client-side. No upload, no signup.
Open the editor