Conversor de Texto para Unicode (e Unicode para Texto)

Converta texto em códigos Unicode (U+00E7, \u00e7, ç, %C3%A7, UTF-8) e decodifique escapes de volta para texto. Aceita emoji e formatos misturados.

Conversor de texto para Unicode e de Unicode para texto

Digite um texto para ver o código Unicode de cada caractere no formato que você precisa, ou cole um texto cheio de \u00e7, ç e %C3%A7 para lê-lo normalmente. A conversão acontece no seu navegador, enquanto você digita.

Neste formato todos os caracteres são convertidos: no meio de um texto comum a notação ficaria ambígua.

Como usar

  1. Escolha a direção: Texto → Unicode ou Unicode → Texto.
  2. Na ida, escolha o formato de saída. Marque Converter só os caracteres não-ASCII para manter letras, números e pontuação comuns e trocar apenas acentos, símbolos e emoji — é o jeito de “consertar” um texto para colar em código-fonte, JSON ou arquivo .properties.
  3. Na volta, deixe em Detectar automaticamente: o decodificador reconhece vários formatos misturados no mesmo texto. Para listas de bytes ou de unidades em hexadecimal, escolha o formato correspondente.
  4. Copie o resultado, ou use Decodificar de volta para conferir a ida e volta.

O que significa \u00e7?

É a letra ç escrita como escape Unicode. O Unicode dá a cada caractere um número, o code point; o do ç é 231 em decimal, ou E7 em hexadecimal, escrito oficialmente como U+00E7. Linguagens como JavaScript, Java e o formato JSON permitem escrever esse número no lugar da letra: \u seguido de quatro dígitos hexadecimais. Assim, Jo\u00e3o é apenas João, e a\u00e7\u00e3o é ação.

Esses códigos aparecem quando um sistema grava o texto de forma “segura” para não depender da codificação do arquivo: respostas de API em JSON, arquivos de tradução, logs, e-mails e páginas HTML antigas.

Formatos disponíveis

Formatoç😀Onde é usado
Code pointU+00E7U+1F600Documentação e tabelas Unicode
JavaScript / JSON / Java\u00e7\ud83d\ude00Strings em código e em JSON
JavaScript ES6\u{e7}\u{1f600}JavaScript a partir do ES2015
Entidade HTML decimalç😀HTML e XML
Entidade HTML hexadecimalç😀HTML e XML
CSS\00E7\1F600Propriedade content, seletores
Python\u00e7\U0001F600Strings em Python
Percent-encoding%C3%A7%F0%9F%98%80URLs (bytes UTF-8)
Bytes UTF-8C3 A7F0 9F 98 80Depuração de arquivos e redes
Unidades UTF-1600E7D83D DE00Depuração, Windows, Java

Por que o emoji vira dois códigos?

O formato \uXXXX só tem quatro dígitos hexadecimais, então alcança até U+FFFF. Caracteres acima disso — quase todos os emoji — são representados em UTF-16 por duas unidades, o chamado par substituto (surrogate pair). O 😀 (U+1F600) vira \ud83d\ude00. O JSON só conhece essa forma; o JavaScript moderno também aceita \u{1F600}, e o Python usa \U0001F600, com oito dígitos.

Alguns “caracteres” visíveis são, na verdade, vários code points em sequência:

  • A bandeira 🇧🇷 são dois indicadores regionais: U+1F1E7 U+1F1F7 (as letras B e R).
  • A família 👨‍👩‍👧 são três emoji unidos por U+200D, o zero width joiner: U+1F468 U+200D U+1F469 U+200D U+1F467.

Esta ferramenta percorre o texto por code point, não por unidade UTF-16, então emoji não são cortados ao meio. Na volta, \ud83d\ude00 é reunido em um único 😀.

O que o decodificador reconhece

No modo automático, em uma única passada (nada é decodificado duas vezes):

  • \u00e7, \u{1F600} e \U0001F600;
  • \xE7 (JavaScript) e sequências como \xC3\xA7, tratadas como bytes UTF-8 quando formam um texto válido;
  • entidades numéricas ç e ç;
  • U+00E7, com um espaço entre códigos seguidos;
  • percent-encoding %C3%A7;
  • escapes CSS de quatro a seis dígitos, como \201C.

O que não é reconhecido fica exatamente como estava, e um caminho como C:\dados\nota.txt não é alterado. Marque a opção de escapes simples se quiser que \n, \t e \" também sejam interpretados.

Limitações

  • Entidades HTML com nome (ç, ã,  ) não são convertidas aqui; para <, > e & use o HTML Encode/Decode.
  • Escapes CSS curtos, como \E7 ou \A, só são lidos no modo Somente escapes CSS: no automático eles se confundiriam com \b, \f e caminhos de arquivo. Pela regra do CSS, um espaço logo depois do escape faz parte dele e é consumido.
  • A opção de converter só os não-ASCII não vale para U+, bytes UTF-8 e UTF-16: no meio de um texto comum essas notações ficariam ambíguas (cafe é um texto, mas também é hexadecimal válido).
  • Bytes isolados de outras codificações (Latin-1, Windows-1252) não são UTF-8 válido; nesse caso o %E7 é mantido como está.
  • O limite é de 200 mil caracteres por conversão.

Perguntas frequentes

Qual é o código Unicode do ç e do ã?

O ç é U+00E7 (231 em decimal): \u00e7, ç, %C3%A7. O ã é U+00E3 (227): \u00e3, ã, %C3%A3. Para ver os dados de um caractere isolado, use Informações de Caractere Unicode.

Como converter um texto para código decimal de HTML?

Escolha Entidade HTML decimal. “Ação” vira Ação; com a opção de só não-ASCII marcada, vira Ação, que o navegador exibe do mesmo jeito.

Qual a diferença entre Unicode e UTF-8?

Unicode é a tabela que dá um número a cada caractere. UTF-8 e UTF-16 são formas de gravar esse número em bytes. O ç é sempre U+00E7, mas ocupa dois bytes em UTF-8 (C3 A7) e uma unidade de 16 bits em UTF-16 (00E7).

Por que o percent-encoding do ç tem dois códigos?

Porque a URL codifica os bytes UTF-8, não o code point: o ç tem dois bytes, %C3%A7, e o 😀 tem quatro. Para codificar uma URL inteira, com as regras de quais caracteres preservar, use o URL Encode/Decode.

O texto é enviado para algum servidor?

Não. A conversão é feita por JavaScript no seu navegador.

Veja também