Transforme texto em escapes \uXXXX ou referências HTML em base decimal ou hexadecimal. A decodificação reconhece as três notações no mesmo texto, independentemente do formato selecionado. A ferramenta trabalha com representações de caracteres, não com bytes UTF-8.
Funciona localmente no seu navegadorCole o texto no campo de entrada. O processamento acontece no navegador sem enviar o conteúdo em solicitações de rede. Não há envio de arquivos nem modo em lote.
O modo Unicode escreve cada unidade de código UTF-16 como \u e exatamente quatro dígitos hexadecimais minúsculos, sem aspas externas. A vira \u0041, Ā vira \u0100 e uma quebra LF real vira \u000a. Para 😀, são necessárias duas unidades: \ud83d\ude00.
Já as referências usam pontos de código completos. A你😀 produz A你😀 em decimal ou A你😀 em hexadecimal. As letras dos dígitos hexadecimais saem em maiúsculas, e a quantidade de dígitos varia. Letras e espaços também são codificados.
O decodificador procura \u com u minúsculo e quatro dígitos hexadecimais, além de referências numéricas com ponto e vírgula final. As hexadecimais aceitam &#x ou &#X; os dígitos aceitam maiúsculas e minúsculas. A entrada mista \u0041你😀 resulta em A你😀.
Sequências criadas durante a substituição não são lidas de novo: \u005cu0041 vira o texto literal \u0041, e A vira A, não A. Isso não equivale a interpretar uma string JavaScript ou um documento JSON completo. Código não é executado, e a saída aparece como texto, não como HTML.
O he 1.2.0 usa validação HTML estrita ao gerar referências numéricas e ao decodificá-las. Essa validação não se aplica aos escapes Unicode: NUL, U+0080 e U+FFFF podem ser codificados nesse modo e recuperados por \u, mas são rejeitados na codificação numérica. Todos os modos de codificação rejeitam substitutos isolados; a saída decodificada também não pode contê-los.
\uD83D\uDE00 recupera 😀. As referências �� são rejeitadas, pois valores substitutos não formam um par nesse formato. �, € e � também causam erro.
Elas permanecem como texto: \uZZZZ, \u{41}, \U0041, \n, &, &#xZZ; e A sem ponto e vírgula são exemplos. Uma lista como 65 66 também não é interpretada. Isso não impede que uma referência numérica reconhecida cause erro de validação.
Não há remoção de espaços nas extremidades nem normalização Unicode. Entrada vazia gera saída vazia. O campo de texto converte quebras CRLF e CR reais em LF. No núcleo, CR pode virar ao codificar, mas a decodificação numérica estrita rejeita . Portanto, nem toda entrada faz uma ida e volta exata.