Codificação
Unicode Escape
Codificação e decodificação de sequências Unicode — caracteres no formato \uXXXX e vice-versa.
A Unicode escape sequence (\uXXXX) writes a character as its code point instead of the character itself — so a string literal in code can contain any Unicode character while the source file itself stays plain ASCII.
How to use it
- Encode: paste text and every non-ASCII character gets replaced with its matching \uXXXX sequence.
- Decode: paste a string containing \uXXXX sequences to get plain, readable text back.
- Characters outside the Basic Multilingual Plane (most emoji) are encoded as a surrogate pair of two sequences.
Common uses
- Reading JSON or JS code where non-ASCII text was pre-escaped into \uXXXX for compatibility.
- Inserting a character that's not on the keyboard into code via an explicit Unicode escape.
- Debugging why a string with an emoji shows up as two odd characters — recognizing a surrogate pair.
Things to keep in mind
\uXXXX encodes exactly one 16-bit UTF-16 unit, not one visible character — characters outside the Basic Multilingual Plane (most emoji) need two such sequences together (a surrogate pair).
JSON only requires escaping for control characters and a few special characters — escaping every character as \uXXXX isn't required, though it is valid.
Artigo sobre esta ferramenta: Unicode Escape: o que significam as sequências \uXXXX
Perguntas frequentes
O que representa uma sequência de escape \uXXXX?
É um ponto de código Unicode escrito como quatro dígitos hexadecimais, usado em JSON, strings JavaScript e formatos similares para representar um caractere sem digitá-lo literalmente.
Por que alguns caracteres, como emojis, viram duas sequências \u?
Caracteres fora do Plano Multilíngue Básico (caracteres astrais, incluindo a maioria dos emojis) não cabem em uma única unidade \uXXXX de 16 bits, então são representados como um par substituto — duas sequências \uXXXX que juntas codificam um caractere.
Qual a diferença entre o modo "Não-ASCII" e "Todos os caracteres"?
"Não-ASCII" escapa apenas caracteres fora do intervalo ASCII básico, deixando letras, dígitos e pontuação comuns intactos. "Todos os caracteres" escapa tudo, incluindo ASCII, útil para identificar o conteúdo exato dos caracteres.
O que acontece se um par substituto for dividido ao meio?
O resultado é um caractere "órfão" inválido — um código solitário sem seu par. A maioria dos parsers rejeita essa string com erro ou exibe o caractere de substituição "�".
É possível codificar um caractere emoji com apenas um \uXXXX?
Não, se o emoji estiver fora do Plano Multilíngue Básico (e a maioria dos emojis atuais está) — ele sempre precisa de um par substituto formado por duas sequências \uXXXX.