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) |
O que este conversor de código de caracteres Unicode faz
Esta ferramenta recebe qualquer caractere que você digitar e exibe, ao mesmo tempo, sete representações de código diferentes lado a lado: o ponto de código Unicode, a sequência de bytes UTF-8, o escape de JavaScript, a entidade HTML (decimal e hexadecimal), a codificação percentual de URL e o escape CSS. Cada conversão -do caractere para o ponto de código, e do ponto de código para cada representação em bytes- é calculada instantaneamente no seu navegador enquanto você digita, sem enviar nenhum dado a um servidor.
Um detalhe importante: muitos emojis têm pontos de código fora do Plano Multilíngue Básico do Unicode (BMP, U+0000-U+FFFF), então as strings JavaScript os representam internamente como um par substituto, ou seja, duas unidades de código de 16 bits em vez de uma. Esta ferramenta usa `codePointAt` internamente para que um par substituto seja sempre resolvido de volta em um único ponto de código correto, garantindo que emojis produzam resultados precisos em vez de dois meios caracteres separados. Se você digitar mais de um caractere, cada um recebe seu próprio bloco de resultado.
Como usar este conversor Unicode
- Digite o caractere que deseja consultar Insira qualquer letra, símbolo ou emoji no campo de entrada. Você também pode colar vários caracteres de uma vez.
- Confira o bloco de resultado de cada caractere Um cartão separado aparece para cada caractere digitado, mostrando as sete representações de código.
- Localize a representação de que precisa Percorra as linhas até encontrar o formato relevante para sua tarefa: ponto de código, bytes UTF-8, escape de JavaScript e assim por diante.
- Copie o valor com o botão de copiar Clique no botão de copiar ao lado de qualquer linha para enviar apenas aquele valor à área de transferência, pronto para colar no seu código.
- Teste outro caractere Edite o campo de entrada ou clique em "Limpar" para recomeçar, e então digite o próximo caractere que deseja verificar.
Dicas para aproveitar melhor
- 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.
Situações em que esta ferramenta é útil
Diagnosticar texto corrompido ou mal codificado
Quando um programa ou banco de dados exibe um caractere inesperado, comparar o ponto de código real e os bytes UTF-8 ajuda a identificar se uma incompatibilidade de codificação é a causa.
Verificar como os emojis são codificados
Veja rapidamente quantas unidades de código um emoji precisa como par substituto em JavaScript e quantos bytes ele ocupa em UTF-8.
Verificar o armazenamento de caracteres em banco de dados
Útil quando você precisa saber antecipadamente quantos bytes um caractere específico ocupará, por exemplo, para decidir se uma coluna do MySQL precisa de utf8mb4.
Incorporar caracteres especiais em HTML ou CSS
Obtenha a entidade HTML ou o escape CSS correto para um símbolo ou caractere de outro idioma e cole diretamente na sua marcação ou folha de estilo.
Validar a codificação de URL
Confirme que parâmetros de consulta com caracteres não ASCII ou símbolos estão codificados em percentual conforme esperado antes de enviar uma requisição.
Glossário
- Unicode
- Um padrão internacional de codificação de caracteres que atribui um único número, um ponto de código, a cada caractere usado no mundo, com o objetivo de evitar caracteres corrompidos entre idiomas.
- Ponto de código
- O número que o Unicode atribui a um caractere, escrito como
U+0041: um número hexadecimal após o prefixo "U+" que identifica de forma exclusiva qual caractere é. - UTF-8
- Um esquema de codificação específico para armazenar ou transmitir pontos de código Unicode como bytes. Usa de 1 a 4 bytes de comprimento variável por caractere e é totalmente compatível com ASCII, motivo pelo qual domina na web.
- UTF-16
- Um esquema de codificação que representa pontos de código Unicode em unidades de 16 bits (unidades de código). As strings JavaScript usam essa codificação internamente.
- Par substituto
- Uma combinação de duas unidades de código usada em UTF-16 para representar um ponto de código além do Plano Multilíngue Básico (BMP). A maioria dos emojis exige um par substituto.
- BMP (Plano Multilíngue Básico)
- A faixa de pontos de código Unicode de U+0000 a U+FFFF. Caracteres dessa faixa podem ser representados com uma única unidade de código UTF-16.
- Entidade HTML
- Uma forma de escrever caracteres especiais com segurança dentro de uma marcação HTML, como
A(decimal) ouA(hexadecimal). - Codificação percentual
- Um esquema que converte caracteres não permitidos em uma URL em bytes UTF-8 e escreve cada byte como
%XX. Comumente usado para texto não ASCII em URLs.
Perguntas frequentes
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.