Unicode Escape Converter
Convert CJK text and Emoji to \uXXXX escapes or restore them, auto-merging surrogate pairs — turn mojibake in API logs readable in a second.
\uXXXX; Emoji and other supplementary-plane characters split into a pair of surrogate escapes; consecutive surrogate pairs merge back automatically on decode.>_ USAGE GUIDE
Two-way conversion between readable text and \uXXXX escape sequences: CJK characters and emoji in, escapes out — or paste escapes and get the original back. Surrogate pairs merge automatically: characters beyond the Basic Multilingual Plane (code points above 0xFFFF), which includes most emoji, are stored as two \uD83D\uDE00-style surrogates, and this tool reassembles them into one character instead of leaving you two broken glyphs.
- Paste the escaped text: anything containing
\uXXXXsequences decodes instantly - Or encode: paste real text to see its escape form for embedding in JSON or legacy source files
- Mixed input is fine: legal escapes convert, everything else passes through untouched
The most common scenario is \u4e2d\u6587 inside API logs and JSON files — a serializer escaped the non-ASCII text and it reads as garbage; paste it here and it becomes readable in a second. It also pairs well with the Text Diff tool: decode a whole log first, then diff against the original to document exactly which segments the serializer had escaped. Conversion runs locally with zero uploads.
>_ FAQ
Q1 · What does \u4e2d\u6587 mean?
It is Unicode escape notation: \u followed by four hex digits of a code point. \u4e2d is the character read "zhōng" and \u6587 is the one read "wén". Serializers, Java property files, and JS string literals use this form to keep non-ASCII characters transport-safe. Paste it here to see the original — it is not corruption, just a disguise.
Q2 · Why is one character one \u but an emoji is two?
Unicode code points come in two layers: the Basic Multilingual Plane (0x0000–0xFFFF) fits in one \uXXXX, but characters beyond it — most emoji — exceed 16 bits and are represented in UTF-16 as a pair of surrogates (😀 = \uD83D\uDE00). This tool merges surrogate pairs on decode, so an emoji never turns into two question marks or squares.
Q3 · How do Unicode, UTF-8, and GBK relate?
Unicode assigns an ID number (code point) to every character; UTF-8, UTF-16, and GBK are different schemes for storing those numbers as bytes. The same character zhōng has code point U+4E2D, takes 3 bytes in UTF-8, and 2 bytes in GBK. Mojibake happens when one scheme writes and another reads — standardizing on UTF-8 is the modern engineering answer.
Q4 · My log mixes escapes with plain text — can it handle that?
Yes. The rule is "convert what matches, keep what does not": valid \uXXXX sequences are decoded while the rest of the text passes through unchanged, so a mixed log can be pasted whole without manual splitting. Decode first, then use the Text Diff tool against the original to confirm nothing was touched by mistake.
Q5 · Can escape sequences be used directly in source code?
JS, Java, and JSON all accept \uXXXX literals with exactly the same meaning as the written character — "\u4e2d\u6587" equals the two-character word for the Chinese language. The historical purpose was dodging source-file encoding problems (writing CJK text in a GBK-encoded file breaks it). Modern projects standardize on UTF-8 and rarely need it; use this tool to read the escapes you meet in older code.