Ir para o conteúdo
TextArray
Totalmente local

Hex para texto e vice-versa

Converta texto em hexadecimal e hexadecimal de volta em texto, byte por byte em UTF-8.

Entrada

Hex para texto e vice-versa

Hexadecimal é como os bytes são escritos quando humanos precisam lê-los: dois dígitos por byte, de 00 a ff. Cole o texto para ver os bytes UTF-8 exatos por trás dele ou cole um despejo hexadecimal de um log, uma captura de pacote ou um depurador e leia a mensagem novamente. O seletor de modo muda de direção e o resultado é atualizado conforme você digita.

A opção separador decide o formato da saída. Pares separados por espaços são o formato de despejo clássico e os mais fáceis de verificar a olho nu. Hexadecimal não separado é a aparência das somas de verificação, dos valores de cores e das colunas de blob do banco de dados. O prefixo 0x é adequado para literais de bytes C, Go e Rust; o prefixo \\x corresponde a objetos de bytes do Python e escapes de shell. Dígitos maiúsculos existem para muitos formatos que esperam AF em vez de af.

Ler o hexadecimal de volta é deliberadamente tolerante, porque o hexadecimal real chega confuso. Espaços, tabulações e quebras de linha são ignorados, os prefixos 0x e \\x são removidos onde quer que apareçam e letras maiúsculas e minúsculas se misturam livremente - portanto, copiar e colar de um rastreamento de pilha geralmente funciona. Duas coisas são relatadas em vez de adivinhadas: um número ímpar de dígitos, o que significa que um dígito desapareceu, e caracteres fora de 0-9 a-f. Bytes que não são decodificados em UTF-8 válidos para o caractere de substituição, para que você ainda possa ver onde uma sequência foi interrompida.

Tudo é executado no seu navegador usando o codificador UTF-8 integrado. Nada é carregado, o que importa quando o hexadecimal que você está inspecionando provém de uma carga útil, um token ou um arquivo privado. A contagem abaixo da saída mostra caracteres versus bytes, portanto, caracteres multibyte são fáceis de detectar: um emoji custa quatro bytes, uma letra acentuada, dois.

FAQ

Por que meu hexadecimal é maior que meu texto?
Cada byte leva dois dígitos hexadecimais e o texto é codificado como UTF-8 – onde ASCII é um byte por caractere, letras acentuadas levam dois e emoji levam quatro. Uma palavra de 5 caracteres pode facilmente ter 8 bytes e 16 dígitos.
Quais formatos hexadecimais ele pode ler?
Todos os que ele escreve, e a maioria dos outros: pares espaçados, strings ininterruptas, bytes com prefixo 0x e prefixo \x, letras maiúsculas ou minúsculas, espalhados por quantas linhas você desejar. Espaços em branco e prefixos são removidos antes da decodificação.
Por que recebo um erro de número ímpar de dígitos?
Um byte tem sempre dois dígitos, portanto, uma contagem ímpar significa que um foi perdido, geralmente em uma cópia truncada. Verifique o início e o fim da string. Vírgulas e outras pontuações não são aceitas como separadores — remova-as ou espace os bytes.
Quais são os caracteres de diamante negro no texto decodificado?
Isso é U+FFFD, mostrado sempre que os bytes não são UTF-8 válidos — normalmente porque o hexadecimal veio de dados binários ou de texto em outra codificação, como Windows-1250.
Meu texto é carregado em algum lugar?
Não. A conversão é executada inteiramente no seu navegador e seu texto nunca sai do seu dispositivo.