Unicode Unescaper

Turn \u escape sequences back into characters.

Reverse
Input
TEXT input
Output
Result

About this tool


This decodes every common escape form in one pass, so you do not need to know which language produced the string. Four-digit \u escapes, JavaScript \u{...}, Python \U with eight digits, two-digit \x and surrogate pairs are all recognised together.

The usual reason to reach for it is a log file or an API response where non-ASCII text has been escaped, leaving you with \u00e9 instead of รฉ and no easy way to read the content.

How to use it

  1. Paste or upload your textDrop a file onto the input pane, use the file picker, or paste the text directly.
  2. Adjust the options if neededThe defaults suit most input; open Options to change the behaviour.
  3. UnescapePress Unescape, or use Ctrl+Enter (Cmd+Enter on macOS).
  4. Copy or downloadCopy the result, or download it as a .txt file.

Worked examples


Each example below is executed against this tool by the test suite, so what you see is what the tool actually produces.

Mixed escape forms

Input

\u00e9 \u{1F600} ๐Ÿ˜€ \x41

Output

รฉ ๐Ÿ˜€ ๐Ÿ˜€ A

Both the modern form and the surrogate pair produce the same emoji.

What to watch for


The details that decide whether a conversion is correct, and where information can be lost without any error being raised.

Surrogate pairs are recombined
A pair like ๐Ÿ˜€ is detected and joined into the single character it represents, rather than being decoded into two invalid halves. This is what makes escaped emoji in JSON readable again.
All forms in one pass
Because the forms are unambiguous, they can be handled simultaneously: \u00e9, \u{1f600}, \U0001f600 and \x41 all decode correctly in the same input, whatever mixture produced it.
Invalid escapes are preserved, not dropped
A lone surrogate or an out-of-range code point cannot become a valid character, so it is left as written rather than silently replaced. That keeps a corrupt sequence visible instead of hiding it behind a replacement character.

Limitations


  • Does not process octal escapes, which are deprecated and ambiguous.
  • Requires at least one recognisable escape sequence in the input.
  • Processing happens in your browser, so very large inputs are bounded by available memory. Files above roughly 10 MB are handled but will feel slower, and multi-hundred-megabyte files are better suited to a command-line tool.

Questions


Do I need to know which language produced the escapes?
No. All the common forms are decoded in a single pass, including mixtures.
Why is a sequence left unchanged?
It is not a valid escape, a lone surrogate, or a code point outside the Unicode range. Leaving it visible is more useful than substituting a replacement character.