How to use Unicode Decoder
- Paste the escaped text (mixed notations are fine).
- Read the decoded text and the count of escapes.
- Use the inspector to identify invisible or look-alike characters.
- Copy the plain text.
Unicode Decoder features
- Decodes \uXXXX, \u{…}, \UXXXXXXXX, \xHH, U+XXXX, &#NNN;, &#xHH; and CSS escapes
- Combines surrogate pairs into single characters; warns about lone surrogates
- Reports which notations were found and how many escapes were decoded
- Character inspector with code point, decimal, script/category and UTF-8 bytes
- Live decoding as you paste
Unicode Decoder example
Decode mixed escapes
Input:
\u0645\u0631\u062d\u0628\u0627 U+2014 नमस्ते \ud83d\ude80Output:
مرحبا — नमस्ते 🚀Frequently asked questions about Unicode Decoder
Which notations are recognised?
\uXXXX (JS/JSON/Java), \u{X…} (ES2015), \UXXXXXXXX and \xHH (Python/C), U+XXXX (documentation), &#NNN; / &#xHH; (HTML) and CSS \HHHH escapes — all mixed in the same text.
How are surrogate pairs handled?
Consecutive \uD83D\uDE80 escapes are combined into a single 🚀 character. A lone surrogate is reported as a warning because it is not valid Unicode.
What does the inspector show?
Each resulting character with its code point, decimal value, script/category and UTF-8 bytes, so you can identify invisible characters (zero-width spaces, RTL marks) or confusable letters.
Does it decode JSON strings?
It decodes the \u escapes inside them. To also handle \n, \t and quotes, use the JSON Escape/Unescape tool.
Technical notes
Each escape is converted with String.fromCharCode or String.fromCodePoint depending on its range; adjacent high and low surrogates therefore merge into one code point naturally. The inspector classifies characters with Unicode property escapes (\p{L}, \p{Script=Arabic}, …) available in modern JavaScript engines.