Inspetor Unicode

Cole um texto e veja cada caractere de uma vez — inclusive os invisíveis.

Como usar

  1. Cole ou digite um texto: as cinco contagens, a grade de caracteres e os detalhes do primeiro caractere aparecem imediatamente — não há botão para pressionar.
  2. Leia os cinco números primeiro. Pontos de código, clusters de grafemas, bytes UTF-8 e unidades UTF-16 são quatro formas de contar o mesmo texto; “Café” digitado como cinco letras mais um acento combinante tem 6 pontos de código mas 5 clusters — o motivo habitual de duas strings idênticas falharem numa comparação.
  3. Clique em qualquer chip da grade para abrir sua ficha: ponto de código, bytes UTF-8 / UTF-16 / UTF-32, nome oficial Unicode, categoria geral, script e bloco. Um cluster formado por vários pontos de código (emoji de família, letra acentuada) ganha uma linha por ponto de código.
  4. Caracteres ocultos são destacados na grade; mude para “Somente ocultos” para ver apenas esses clusters. Isso cobre espaços de largura zero, joiners, marcas direcionais, espaços não separáveis, caracteres de controle e surrogates sem par.
  5. “Copiar pontos de código” devolve o texto inteiro como “U+0043 U+0061 …”, pronto para colar em código ou num relatório de bug. “Copiar este cluster” faz o mesmo para o selecionado.

Exemplo

Entrada

Café — “smart quotes” vs​plain 👍🏽

Pontos de código

U+0043 U+0061 U+0066 U+0065 U+0301 U+0020 U+2014 U+0020 U+201C U+0073 U+006D U+0061 U+0072 U+0074 U+0020 U+0071 U+0075 U+006F U+0074 U+0065 U+0073 U+201D U+00A0 U+0076 U+0073 U+200B U+0070 U+006C U+0061 U+0069 U+006E U+0020 U+1F44D U+1F3FD

34 pontos de código, 32 clusters, 2 caracteres ocultos: o espaço não separável U+00A0 antes de “vs” e o espaço de largura zero U+200B antes de “plain”. “Cafe” mais U+0301 é um cluster formado por dois pontos de código, e 👍🏽 é um cluster formado por dois pontos de código (U+1F44D + U+1F3FD). Selecione o chip 👍🏽 para ver as duas linhas.

Regras, limites e problemas conhecidos

  • Os nomes vêm de uma tabela curada de 499 entradas oficiais — ASCII, Latin-1, pontuação geral, formas de largura total, pontuação CJK comum, seletores de variação e os caracteres invisíveis de formatação. Caracteres fora dela mostram “—” no nome; categoria, script e bloco são calculados para todo caractere.
  • Nomes e nomes de blocos permanecem no inglês oficial Unicode de propósito: são identificadores usados em especificações e código, e uma tradução não poderia mais ser comparada com o padrão.
  • Blocos e scripts seguem o Unicode 16.0.0. Para caracteres adicionados depois, o bloco pode estar ausente (“—”) e o script pode recorrer ao seu código (por exemplo, “Latn”).
  • Os bytes UTF-8 de um surrogate sem par são contados como U+FFFD (EF BF BD) — é o que o codificador do navegador faz; o texto em si nunca é modificado.
  • Os clusters de grafemas usam Intl.Segmenter (Chrome 87+, Safari 14.1+); sem ele, a ferramenta conta por ponto de código e avisa isso na nota.
  • Quebras de linha contam como caracteres ocultos porque são caracteres de controle. É exatamente o que você quer ao caçar bytes perdidos no fim de uma linha, mas significa que “oculto” inclui as quebras de linha de uma colagem multilinha.
  • Somente leitura: o texto nunca é alterado. Para remover caracteres invisíveis use Limpeza de texto; para escrevê-los como escapes \u ou percent-encoding use as ferramentas de escape.
  • Um glifo de caixa só significa que a fonte do seu sistema não tem o caractere — não significa que o caractere não esteja atribuído.
  • Até 100.000 pontos de código. A grade renderiza os primeiros 1.000 clusters enquanto todas as contagens acima ainda cobrem o texto inteiro.
  • Nada é enviado: tudo roda no seu navegador, o texto nunca sai da página, e a ferramenta continua funcionando com a rede desligada.

O que as pessoas costumam precisar em seguida, quando uma string finalmente faz sentido.