← Back to DevKit

Unicode Escape Converter

UNICODE ESCAPE · ENCODE & SECURITY

Convert CJK text and Emoji to \uXXXX escapes or restore them, auto-merging surrogate pairs — turn mojibake in API logs readable in a second.

Encode → \uXXXX
Decode → text

    
Encodes by code point: BMP characters become \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.

  1. Paste the escaped text: anything containing \uXXXX sequences decodes instantly
  2. Or encode: paste real text to see its escape form for embedding in JSON or legacy source files
  3. 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.

Embed code

Paste the code below into your page to embed this tool as an iframe (nav and footer auto-hidden).

Heightpx
This tool runs entirely in your browser — input never leaves your device. Press Ctrl K to switch tools anytime.