Convert escape sequences in the JavaScript, ES6, Python and hex styles back into the characters they represent, flagging unpaired surrogates.
Show calculation steps
Processed privately in your browser — nothing you paste is uploaded, logged or stored.
Escape sequences back to characters
This reads \uXXXX, \u{XXXXX}, \xXX and HTML numeric forms and returns the characters they denote, including reassembling surrogate pairs into the single character they represent.
Worked example
\u00e9 → é
\ud83d\ude00 → 😀 (pair joined into one character)
\u{1F600} → 😀
é → éThe lone surrogate problem
Half of a surrogate pair is not a character. It appears when a string has been cut at a fixed length — a database column, a truncated log line — straight through the middle of an emoji. The tool reports it rather than emitting a replacement character, because knowing the string was truncated is the useful information.
Where you meet escaped text
JSON from APIs that escape everything above ASCII, log files written by systems that cannot store Unicode, and minified source. Unescaping is usually the first step in working out whether the data is intact.
Limits
Only recognised escape forms are converted; anything else passes through unchanged so you can see it. Everything runs in your browser.
How to use the Unicode Unescape
- Paste text containing escape sequences.
- Click "Unescape Unicode" – the four-digit, brace, capital-U and hex forms are all recognised together.
- Check the notes for any unpaired surrogate, which indicates damaged data.
Frequently asked questions
Which escape formats are supported?
Four-digit sequences, ES6 brace sequences, Python eight-digit capital-U sequences and two-digit hex escapes. They can be mixed in the same input, which is common when text has passed through several systems.
What is an unpaired surrogate?
Characters above the basic plane are written as two halves. If only one half survives – because a string was truncated at the wrong point – the result is an incomplete character. The tool flags it rather than pretending the text is intact.
Does this handle HTML entities too?
No, they are a different notation. Use the HTML Entity Decoder for ampersand-style references; this tool handles backslash-style programming escapes.