Conversor de Unicode para UTF-8

Transforme texto Unicode literal na sintaxe de escape \u00E9, \u{1F600} que as linguagens de programação incorporam no código-fonte, ou cole uma string escapada e decodifique-a de volta para os caracteres originais. Funciona para caracteres BMP (escapes de 4 dígitos) e planos suplementares como emojis (sintaxe \u{...} de comprimento variável).

Como converter entre Unicode e escapes UTF-8

  1. 1

    Escolha uma direção

    Codifique caracteres em escapes `\u`, ou decodifique uma string escapada de volta em texto.

  2. 2

    Cole sua entrada

    Texto simples para codificação; uma string com sequências `\uXXXX` ou `\u{XXXXX}` para decodificação.

  3. 3

    Leia a saída

    Caracteres BMP produzem escapes de quatro dígitos no estilo `\u0041`; caracteres acima de U+FFFF usam a forma ES6 `\u{...}`.

  4. 4

    Copie para seu código

    Insira o resultado em uma string JavaScript, um literal JSON, um arquivo de configuração ou uma fixture de teste.

Sintaxe de escape entre linguagens

Cada linguagem expressa a mesma ideia de maneiras diferentes. O conversor gera a forma comum JavaScript/JSON, mas aqui está para o que você traduz quando escreve o mesmo caractere em outro lugar.

Sintaxe de escape por linguagem

Linguagem BMP (<= U+FFFF) Suplementar (> U+FFFF)
JavaScript \u00E9 \u{1F600} (ES6+)
JSON \u00E9 Par substituto \uD83D\uDE00
Python \u00e9 \U0001F600
Java \u00e9 Par substituto
C / C++ \u00e9 \U0001F600
Ruby \u00e9 \u{1F600}
Rust \u{00e9} \u{1F600}
Entidade HTML &#xE9; &#x1F600;
CSS \0000e9 \1F600

Por que os emojis precisam da forma longa

O plano multilíngue básico (BMP) cobre de U+0000 a U+FFFF, onde tudo cabe em uma única unidade de 16 bits, que é para o que a antiga sintaxe \uXXXX foi projetada. Os emojis vivem principalmente no plano 1 (U+1F000 e acima), que não cabe em quatro dígitos hexadecimais. Duas opções:

  1. Chaves ES6, \u{1F600} aceita qualquer comprimento.
  2. Pares substitutos UTF-16, dois escapes \uXXXX para um caractere. Os parsers JSON aceitam isso, e é o que os codificadores JSON geralmente emitem.

Ambos decodificam para a mesma string, mas os pares substitutos são frágeis: cortar uma string entre o substituto alto e o baixo resulta em UTF-16 inválido.

Perguntas frequentes

Quatro dígitos hexadecimais têm um limite em U+FFFF. Os emojis começam em U+1F000, então precisam da forma de chaves ES6 \u{...}, ou um par substituto UTF-16 se você trabalha com alvos mais antigos. Esta ferramenta usa chaves para qualquer coisa acima de U+FFFF.

Não como par. O decodificador entende a forma de chaves \u{1F600} e os escapes de quatro dígitos \uXXXX, mas não recombina um par substituto UTF-16 (a forma de dois escapes usada pelo JSON) em um único emoji: cada metade é decodificada por conta própria e não se reconstrói. Para qualquer caractere acima de U+FFFF, cole a forma de chaves \u{...}, que é exatamente o que o codificador produz.

Não. Um escape como \u00E9 representa o ponto de código U+00E9, não a sequência de bytes UTF-8 (que seria C3 A9). Para a visualização de bytes brutos, use a ferramenta de Pesquisa Unicode, que mostra os bytes UTF-8 em HEX.

A conversão acontece no lado do servidor dentro desta requisição, mas nada é retido: sem registro, sem armazenamento das strings que você converte.

Ferramentas relacionadas

Ferramenta disponível em outros idiomas