Tabela de referência Unicode/código de caracteres

Ferramenta gratuita que mostra, lado a lado, o ponto de código Unicode, a sequência de bytes UTF-8 e as representações de escape JavaScript/HTML/URL/CSS de um caractere digitado. Tudo é executado no navegador.

Tabela de referência de caracteres comuns

Caractere Ponto de código UTF-8 Nota
A U+0041 41 Letra maiúscula (ASCII, 1 byte)
0 U+0030 30 Dígito (ASCII, 1 byte)
U+0020 20 Espaço (ASCII, 1 byte)
! U+0021 21 Ponto de exclamação (símbolo ASCII, 1 byte)
@ U+0040 40 Arroba (símbolo ASCII, 1 byte)
© U+00A9 C2 A9 Símbolo de copyright (suplemento Latin-1, 2 bytes)
U+20AC E2 82 AC Símbolo do euro (3 bytes)
U+2192 E2 86 92 Seta para a direita (bloco de setas, 3 bytes)
U+3042 E3 81 82 Caractere hiragana (3 bytes)
U+6F22 E6 BC A2 Ideograma unificado CJK (3 bytes)
U+D55C ED 95 9C Sílaba hangul (3 bytes)
😀 U+1F600 F0 9F 98 80 Emoji (fora do BMP, 4 bytes, codificado como par substituto em JS)

Dicas de uso

  • Você pode digitar mais de um caractere; cada um recebe seu próprio bloco de resultado abaixo do campo de entrada.
  • Emojis como 😀 ficam fora do Plano Multilíngue Básico do Unicode (BMP, U+0000-U+FFFF), então as strings JavaScript os representam internamente com duas unidades de código (um par substituto); por isso a linha "Escape de JavaScript" mostra duas sequências `\uXXXX`.
  • Um escape CSS como `\41` escreve o ponto de código em hexadecimal sem nenhum prefixo. Adicione um espaço no final quando o caractere seguinte puder ser interpretado como parte dos dígitos hexadecimais.
  • Os navegadores tratam entidades HTML decimais (`A`) e hexadecimais (`A`) da mesma forma; use a que for mais conveniente para sua marcação.
  • Use o botão de copiar em cada linha para levar um valor diretamente para a área de transferência e colá-lo em código ou CSS.

Perguntas frequentes

As strings JavaScript são representadas internamente em UTF-16, em que uma única unidade de código pode conter apenas 16 bits (0-65535). O Unicode define muitos pontos de código além desse intervalo (a partir de U+10000, onde está a maioria dos emojis), então eles são representados usando duas unidades de código especiais -um "substituto alto" e um "substituto baixo"- combinadas em um par substituto. Ao ler uma string unidade por unidade com `charCodeAt`, você obtém essas duas metades separadamente, por isso é necessário usar `codePointAt` para obter o ponto de código correto e completo.

Um ponto de código Unicode (como U+3042) é simplesmente o número atribuído para identificar um caractere. Já o UTF-8 é um esquema de codificação específico para armazenar ou transmitir esse ponto de código como uma sequência de bytes em um computador. O mesmo ponto de código pode ser representado de forma diferente dependendo da codificação: o UTF-8 usa de 1 a 4 bytes de comprimento variável, enquanto UTF-16 ou UTF-32 produzem sequências de bytes diferentes.

O UTF-8 consegue representar caracteres ASCII puros (letras do inglês, dígitos, pontuação básica) em um único byte cada, o que lhe dá forte compatibilidade com sistemas antigos centrados no inglês, ao mesmo tempo em que consegue representar qualquer caractere do Unicode. Em 2026, a grande maioria do texto na web é codificada em UTF-8, e essa é a codificação de caracteres padrão recomendada para documentos HTML.

Não, eles usam sintaxes diferentes. Uma entidade HTML é escrita como `A` (decimal) ou `A` (hexadecimal, com prefixo `x`) e só funciona dentro de marcação HTML. Um escape CSS é escrito como `\41` -apenas dígitos hexadecimais, sem prefixo `U+` ou `x`- e é usado dentro de seletores ou valores de propriedades CSS. Certifique-se de usar o formato correto conforme o contexto em que estiver trabalhando.
ツールくん

Curiosidade — Como o Unicode unificou um mundo fragmentado de codificações de caracteres

Antes de o Unicode existir, as codificações de caracteres variavam enormemente de um país para outro, e até mesmo de um idioma para outro. Só o texto japonês tinha vários esquemas concorrentes -Shift_JIS, EUC-JP e o código JIS, entre outros- e a troca de texto entre sistemas com codificações diferentes frequentemente produzia caracteres corrompidos e ilegíveis. O Unicode 1.0, publicado em 1991, propôs-se a resolver isso atribuindo um único ponto de código a cada caractere usado em qualquer lugar do mundo.

O Unicode e a norma internacional ISO/IEC 10646 foram desenvolvidos inicialmente de forma um tanto independente, mas depois passaram a ser coordenados para compartilhar o mesmo repertório de caracteres e as mesmas atribuições de pontos de código. Hoje o Unicode cobre mais de 150 mil caracteres, incluindo emojis, e uma nova versão é publicada todo ano acrescentando mais.

O UTF-8 foi projetado em 1992 por Ken Thompson e Rob Pike. Seu grande diferencial foi manter compatibilidade total com texto ASCII puro e, ao mesmo tempo, conseguir representar qualquer caractere do Unicode -um design que se mostrou exatamente o que a web precisava, e que desde então se tornou o padrão de fato para codificação de documentos na internet.