Informações de Caractere: ponto de código, entidade HTML e bytes UTF-8 do mesmo caractere
Um único caractere pode ser representado de pelo menos quatro formas
tecnicamente distintas, e esta ferramenta expõe todas simultaneamente:
o ponto de código Unicode (o número que identifica
aquele caractere no padrão Unicode, em decimal e em hexadecimal, no
formato U+XXXX), a entidade HTML (a forma
A ou A, usada para
representar o caractere dentro de um documento HTML sem digitá-lo
diretamente), e os bytes UTF-8 (a representação física
em memória/disco daquele mesmo ponto de código, que pode ocupar de 1 a
4 bytes dependendo do valor). São camadas diferentes do mesmo
conceito — identidade abstrata (ponto de código), representação textual
para documento (entidade), e representação binária para
armazenamento/transmissão (bytes) — frequentemente confundidas como se
fossem a mesma coisa.
Por que "o primeiro caractere" precisa de Array.from(), não texto[0]
Esta ferramenta usa Array.from(texto)[0] para extrair o
primeiro caractere da entrada, não texto[0] ou
texto.charAt(0) — a mesma distinção já discutida nas
páginas de Inverter Texto e
Cortar Texto deste site.
texto[0] pega a primeira unidade de código UTF-16,
que para um emoji fora do Plano Multilíngue Básico seria só a primeira
metade de um par substituto — um ponto de código inválido isolado, sem
significado próprio. Array.from() itera corretamente por
ponto de código completo, garantindo que analisar "o primeiro
caractere" de um texto começando com um emoji retorne o emoji inteiro,
não metade dele.
Uso em depuração de problemas de encoding
Ver os bytes UTF-8 de um caractere específico é uma ferramenta de diagnóstico direta para um tipo de bug notoriamente difícil de depurar só olhando texto renderizado: problemas de encoding onde um caractere aparece corrompido (o clássico "mojibake" — texto que deveria ser "ção" aparecendo como "ção", sinal característico de UTF-8 sendo interpretado incorretamente como Latin-1 em algum ponto do pipeline). Comparar os bytes UTF-8 esperados de um caractere com os bytes realmente armazenados ou transmitidos é a forma mais direta de confirmar onde exatamente a interpretação de encoding divergiu.