Conversor de Texto para Hexadecimal

→
Texto → bytes UTF-8 → 2 dígitos hexadecimais por byte, separados por espaço

Texto para hexadecimal: a forma que os bytes assumem em um traço

O que esta conversão faz

Codifica o texto em UTF-8 e imprime cada byte como dois dígitos hexadecimais. Esta é a notação de capturas de pacote, visualizadores de memória e logs de protocolo, então a conversão é na verdade uma tradução entre o que uma pessoa digita e o que suas ferramentas exibem.

Dois dígitos por byte, sempre

Um byte guarda valores de 0 a 255, e dois dígitos hexadecimais cobrem exatamente essa faixa, de 00 a FF. O par nunca varia, e é isso que torna um despejo hexadecimal fácil de percorrer: dá para contar bytes contando pares, e a coluna de deslocamento à esquerda diz qual par você está olhando. Uma string de oito caracteres são oito pares, e nenhum caractere pode produzir meio par.

Tabela de conversão de texto para hexadecimal

Strings curtas com seus valores de byte em hexadecimal. Pontuação e dígitos viram seus valores ASCII em um único par, enquanto qualquer coisa fora do alfabeto latino se expande em vários pares.

TextoHexadecimal
A41
Hi48 69
OK4F 4B
12331 32 33
!21
Go47 6F

Encontrando uma string dentro de uma captura

Procurar texto legível em uma captura de pacote raramente funciona, porque o que está no fio são bytes e o que você digitou são caracteres. Converter a string que você procura em hexadecimal dá a sequência exata a pesquisar, e revela por que uma busca por um nome com acento falha quando a mesma busca sem o acento dá certo: as formas codificadas têm comprimentos diferentes, não apenas caracteres diferentes.

Atenção aos separadores

Esta ferramenta separa os bytes com espaços para facilitar a leitura, enquanto muitas capturas e URLs juntam os dígitos ou usam sinais de porcentagem. Ao pesquisar, remova os espaços ou troque-os pelo separador que a sua ferramenta espera: uma sequência que parece idêntica de relance pode não casar só por causa dos intervalos.

Perguntas frequentes

Como converter texto em hexadecimal à mão?

Consulte o valor de byte UTF-8 de cada caractere e escreva-o como dois dígitos hexadecimais. Para "Hi" isso dá 48 e 69. Para caracteres fora da faixa ASCII você precisa dos valores de byte, e não do ponto de código, já que um caractere pode ocupar vários bytes.

Qual é a diferença entre a saída hexadecimal e a binária?

Nenhuma além da notação. As duas codificam os mesmos bytes UTF-8; o hexadecimal escreve cada byte com dois dígitos e o binário com oito, então o hexadecimal é quatro vezes mais curto e bem mais fácil de percorrer. Escolha hexadecimal para ler e binário quando precisar ver bits individuais.

Por que meu caractere acentuado vira dois bytes?

Porque o UTF-8 codifica em mais de um byte tudo o que está acima da faixa ASCII original, e a maioria das letras latinas acentuadas ocupa dois. Isso é normal e não é corrupção: o caractere simplesmente está fora da faixa que um byte endereça, e qualquer contador de bytes vai ver dois.

É a mesma codificação que uma URL usa?

Parecida, mas não idêntica. A codificação percentual escreve os bytes UTF-8 com um sinal de porcentagem antes de cada par, então os valores de byte batem exatamente com os desta ferramenta e só a pontuação muda. Converter para hexadecimal aqui dá os bytes certos para codificar em percentual.

Posso usar a saída em um literal de array de bytes?

Pode. Os dígitos são exatamente os valores de byte, então acrescentar um prefixo 0x a cada par gera um literal para a maioria das linguagens de programação. A ferramenta imprime em maiúsculas por convenção; minúsculas são igualmente válidas onde você colar.

Copie o código abaixo e cole-o no seu site para adicionar este conversor.

<!-- Texto para Hexadecimal -->
<iframe src="https://unitflow.net/pt/embed/text-to-hex" title="Texto para Hexadecimal" width="100%" height="420" loading="lazy" style="border:0;max-width:100%;display:block"></iframe>
<p><a href="https://unitflow.net/pt/text-to-hex" target="_blank" rel="noopener">Desenvolvido por UnitFlow</a></p>