Unicode escape / unescape
Cole um texto e os escapes aparecem na hora — ou cole \u4F60 para recuperar os caracteres. Sem botão, nada é enviado.
Como usar
- Escolha Escapar ou Desescapar — a caixa de entrada permanece exatamente como está, então você pode olhar o mesmo texto dos dois lados sem redigitar.
- Escapar: digite ou cole o texto e os escapes aparecem imediatamente. Escolha a sintaxe que sua linguagem de destino usa: \uXXXX (Java, JSON, .properties — caracteres acima do BMP viram pares de surrogates UTF-16), \u{X} (JavaScript ES6, Rust, Swift, Ruby, PHP), \UXXXXXXXX (Python, C, Go, C#) ou U+XXXX (a notação padrão Unicode).
- Escolha o intervalo: “Somente não ASCII” (o padrão) escapa tudo acima de U+007F e deixa ASCII, espaços e quebras de linha em paz; “Todos os caracteres” escapa cada ponto de código, então a saída é ASCII puro.
- Desescapar: cole um texto com escapes para recuperar os caracteres. A linha acima do resultado diz quantos caracteres foram decodificados e, se algum fragmento não pôde ser lido, qual era e onde estava.
Exemplo
Entrada
Café "naïve" 😀
Escapado
Caf\u00E9 "na\u00EFve" \uD83D\uDE00
“é” não tem forma ASCII, então vira \u00E9. “😀” é U+1F600, acima do BMP, então a sintaxe \uXXXX o escreve como o par de surrogates \uD83D\uDE00. Mude para \u{X} e o mesmo texto gera Caf\u{E9} "na\u{EF}ve" \u{1F600}; \UXXXXXXXX gera …\U0001F600; U+XXXX gera CafU+00E9 "naU+00EF ve" U+1F600 — o espaço duplicado depois de é é o separador mais o espaço que já estava no texto. Qualquer um deles pode ser colado de volta em Desescapar sem alteração.
Regras, limites e problemas conhecidos
- Apenas quatro sintaxes são reconhecidas: \uXXXX (exatamente 4 dígitos hexadecimais), \u{X} (1–6 dígitos), \UXXXXXXXX (exatamente 8 dígitos) e U+XXXX (1–6 dígitos, U+ maiúsculo). %uXXXX, \x{X}, \X do CSS e \N{NAME} não são suportados; referências HTML como 你 pertencem à ferramenta de entidades HTML.
- \uXXXX tem 4 dígitos fixos: \u12 e \u12345 não são lidos como \uXXXX — \u12345 decodifica como U+1234 seguido de um “5” literal. Escreva \u{…} quando precisar de 1–6 dígitos.
- \uXXXX não tem limite de caractere: \u4F60abc decodifica como 你abc, e U+4F601 é o ponto de código U+4F601 (5 dígitos, válido), não U+4F60 seguido de “1”.
- Em U+XXXX, um único espaço após um ponto de código é separador, não conteúdo: U+4F60 hello decodifica como 你hello. Esta ferramenta escreve um espaço após cada token U+ (exceto no final), então sua própria saída faz round-trip; tokens escritos à mão sem espaços se colam aos dígitos hexadecimais seguintes e são contados como não reconhecidos.
- Pares de surrogates aparecem apenas na sintaxe \uXXXX, porque é a representação de Java/JSON; \u{1F600}, \U0001F600 e U+1F600 escrevem o ponto de código diretamente. Um surrogate alto não seguido de um baixo é deixado como escrito e contado como não reconhecido — nunca substituído por “�”.
- Pontos de código acima de U+10FFFF e o próprio intervalo de surrogates são rejeitados da mesma forma: deixados como escritos e contados, não substituídos em silêncio.
- O intervalo “Somente não ASCII” não escapa uma barra invertida literal: se seu texto já contém \u4f60, Desescapar vai lê-lo como um escape. Essa ambiguidade é inerente ao intervalo — escolha “Todos os caracteres” quando as barras invertidas importarem.
- A decodificação é de passagem única: \u005Cu4F60 vira o texto literal \u4F60, não 你. Cole de novo se realmente precisar de duas camadas.
- Caracteres de controle válidos decodificam como si mesmos: \u0000 gera U+0000 (invisível, mas não um erro), então a saída pode conter caracteres que você não consegue ver.
- Escapes de string como \n e \t são deixados como texto comum e não são contados, e literais JSON completos são uma preocupação separada. Codificações URL, HTML e Base64 também são ferramentas separadas.
- Até 100.000 caracteres; acima disso aparece um erro em vez de um resultado truncado. Acima de 20.000 caracteres o resultado é atualizado cerca de 0,6 s depois que você para de digitar.
- Sem upload de arquivo, sem histórico e sem link de compartilhamento com sua entrada: tudo roda no seu navegador e o texto nunca sai da página.
Ferramentas relacionadas
O que as pessoas costumam precisar em seguida, depois que o texto é escapado ou desescapado.