Decode Unicode escapes to text
Turn \uXXXX, \u{...}, \UXXXXXXXX, \xXX and numeric character references back into readable text in your browser. Surrogate pairs handled — nothing uploaded.
Paste escaped text and read it. Every common escape form is understood at once: \uXXXX from JavaScript and JSON, uppercase \uXXXX from Java properties, \UXXXXXXXX, \u{...}, \xXX, and numeric character references (&#code; / &#xhex;) from HTML and XML.
Surrogate pairs decode correctly — two \uD83D\uDE80-style escapes join back into the single 🚀 they encode, which is where most naive decoders print two garbage characters instead. Mixed input works too: escaped and literal characters side by side in the same string decode as written.
This is the fix for the classic mojibake of copy pasted from logs, API responses or translated JSON files. The text-to-unicode converter is its exact inverse, so you can verify a round-trip. All decoding runs locally in your browser tab.
Frequently asked questions
- Which escape formats are recognized?
- \uXXXX (any case), \u{hex}, \UXXXXXXXX, \xXX, U+ code-point listings (the emoji reference-sheet form) and HTML/XML numeric references (decimal and hex). You can mix them freely in one input — each escape is decoded on its own merits.
- Why did other tools show garbage for emoji?
- They decoded each \uD83D and \uDE80 separately into unpaired surrogates instead of joining the pair. This decoder assembles pairs first, so astral characters (emoji, rare scripts) come back as the single character they are.
- What about literal backslashes in my text?
- A backslash that doesn't start a recognized escape (like a Windows path C:\temp) passes through untouched — only valid escape sequences are consumed.