What this tool is good for
Unicode assigns a code point to every symbol, with values ranging from U+0000 to U+10FFFF. This tool helps you encode readable text into Unicode-style escapes and decode those escapes back into readable characters.
The encode side mainly converts multibyte characters such as CJK text and emoji while keeping ordinary ASCII characters unchanged, which is useful when inspecting mixed-language JSON, source snippets, payloads, and logs.
Unicode escapes, UTF-8, and readable text
| Concept | Example | What it means |
|---|---|---|
| Readable text | hello | Characters as humans read them. |
| Unicode code point | U+4F60 U+597D | The character numbers defined by the Unicode standard. |
| Unicode escape | \u4f60\u597d | An escaped string form commonly seen in JSON and JavaScript. |
| UTF-8 bytes | E4 BD A0 E5 A5 BD | A byte encoding used in files and network transport. |
Unicode is not the same thing as one byte encoding. A \uXXXX value usually means you are looking at string escaping, while hex bytes usually point to UTF-8, file encoding, or network transport issues.
Common inputs and debugging checks
| Input type | Example | Recommended check |
|---|---|---|
| CJK escape | \u4f60\u597d | Decode it and verify that it becomes readable text. |
| JSON string | {"name":"\u5f20\u4e09"} | Decide whether the JSON layer must be parsed before handling the inner string. |
| Double-escaped text | \\u4f60\\u597d | Remove or parse one escaping layer before Unicode decoding. |
| Emoji surrogate pair | \ud83d\ude00 | Two \uXXXX values can combine into one emoji character. |
- If decoded output still contains \uXXXX, the source may be escaped more than once.
- If decoded output becomes mojibake, the root issue may be byte encoding instead of Unicode escaping.
- For API debugging, first identify whether the response is JSON, plain text, URL-encoded text, or Base64-wrapped content.
How to use it
- Enter readable text in the left panel to generate Unicode escapes.
- Paste Unicode-formatted text in the right panel to decode it back to characters.
- Copy the result when you need to place it into source code, payloads, or configuration.
Encoding and decoding examples
Input: 你好ABC
Encoded: \u4f60\u597dABC
Input: \u4e2d\u6587\u8f6c\u4e49
Decoded: 中文转义
Typical use cases and notes
- Debug Unicode escapes in JSON, JavaScript strings, configuration files, and API parameters.
- Inspect mixed-language text while keeping ASCII letters, numbers, and punctuation readable.
- Compare Unicode escaping with URL encoding and Base64 when text was transformed through multiple systems.
FAQ
What is Unicode escaping used for?
Unicode escaping represents characters with code-point escape sequences, which is useful when debugging JSON strings, source code literals, logs, or systems that cannot display a character directly.
What is the difference between \uXXXX and U+XXXX?
U+XXXX is the standard code point notation, while \uXXXX is an escape form used in many programming languages and JSON strings. They can refer to the same character but appear in different contexts.
Why do emoji sometimes appear as two \uXXXX values?
Many emoji have code points above U+FFFF. In JavaScript strings they can be represented as a UTF-16 surrogate pair, such as \ud83d\ude00 for one emoji.
Is Unicode encoding the same as URL encoding?
No. Unicode escapes describe characters, while URL encoding percent-encodes bytes for safe use in URLs. Use the URL encoder when the target is a query string or path segment.
Why does decoded text still look wrong?
The input may not be a standard Unicode escape, or it may have been double-escaped, JSON-wrapped, URL-encoded, Base64-encoded, or decoded with the wrong byte encoding earlier in the pipeline.
Related tools
- JSON Formatter:Format, edit, and validate JSON online
- URL Encode/Decode:Encode and decode special characters in URLs
- Base64 Encode/Decode:Encode strings to Base64 and decode Base64 back to text
- Text Encoding Converter:Convert between UTF-8, UTF-16LE, UCS-2, Latin1, Base64, ASCII, hex, and byte arrays