Enviar um arquivo
  1. base64hub
  2. Outras bases
  3. Hex para texto

Conversor de hex para texto, ASCII e string

Cole bytes hex como 48 65 6c 6c 6f para ler o texto que eles formam. Espaços, dois-pontos e os prefixos 0x e \x são aceitos, e o UTF-8 é usado até você escolher outro charset.

Grátis sem cadastro, sem limites Local nada é enviado 27 charsets, do ASCII ao Shift_JIS Atualizado 27 de out. de 2026
Entrada 0Bytes 0 BSaída 0

Processado no seu navegador. Esta página não consegue enviar seus dados para lugar nenhum – como sabemos

Como converter hex para texto

  1. Cole o hex em Entrada · Hex. Maiúsculas ou minúsculas, com ou sem separadores.
  2. O texto aparece em Saída · Texto enquanto você digita. Desmarque Ao vivo se preferir converter com Executar.
  3. Se a saída mostrar �, abra Charset abaixo da saída e tente outro. O padrão é UTF-8; ASCII, Latin-1, Windows-1252 e mais 23 estão na lista.
  4. Use Copiar saída ou Baixar para o texto. Se o hex for o dump de um arquivo e não texto, Salvar bytes grava os bytes brutos no disco com uma extensão deduzida pelo conteúdo.

O botão Texto → Hex acima da ferramenta inverte a direção; ou vá para o Texto para Hex.

Formatos de hex que o conversor lê

O hex aparece com várias grafias, conforme a ferramenta que o gerou. Todas estas decodificam para Hello:

FormatoExemploOrigem típica
Puro48656c6c6fxxd -p, sha256sum, dumps de banco de dados
Com espaços48 65 6c 6c 6fWireshark, editores hex
Com dois-pontos48:65:6c:6c:6ffingerprints de certificados, saída do openssl
Com hífens48-65-6C-6C-6FBitConverter.ToString do .NET
Prefixo 0x0x48 0x65 0x6c 0x6c 0x6f ou 0x48656c6c6fcódigo C, depuradores
Escapes \x\x48\x65\x6c\x6c\x6fPython, scripts de shell, logs

Vírgulas, pontos e vírgulas e pontos também servem de separadores. Cole só as colunas de hex: a visualização padrão do xxd começa cada linha com um offset como 00000000: e termina com uma coluna ASCII, então o conversor leria o offset como bytes e depois acusaria erro na primeira letra da coluna ASCII. Rode xxd -p para obter hex puro.

Como ler hex como ASCII

Cada par de dígitos hex é um byte, e no ASCII cada byte abaixo de 80 é um caractere. As faixas que vale a pena lembrar:

HexCaracteres
20espaço
30–39dígitos 0–9
41–5AA–Z
61–7Aa–z
21–2F! " # $ % & ' ( ) * + , - . /
0A, 0Dline feed e carriage return (0D 0A é uma quebra de linha do Windows)

Letras maiúsculas e minúsculas ficam exatamente 20 de distância: 41 é A, 61 é a. Com isso e a tabela dá para ler hex curto de olho. 48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 é Hello, world: 2c é a vírgula e 20 o espaço.

Hex para UTF-8: bytes de 80 a FF

Tudo que foge do inglês básico ocupa mais de um byte em UTF-8, e esses bytes são todos 80 ou maiores. Os mesmos bytes geram textos diferentes conforme o charset usado para lê-los:

HexLido como UTF-8Lido como Windows-1252
63 61 66 c3 a9cafécafé
e2 82 ac€â‚¬
f0 9f 91 8b👋👋
63 61 66 e9caf�café

As três primeiras linhas são dados UTF-8; a última é Latin-1 ou Windows-1252, em que é é o byte único e9. Uma sequência de caracteres à e â quase sempre significa bytes UTF-8 lidos com um charset de um byte. Se nenhum charset der um texto que faça sentido, os bytes provavelmente nem são texto: veja Parece ser na linha de status, que indica o formato quando o reconhece.

Hex, Base64 e os mesmos bytes

O hex gasta dois caracteres por byte e o Base64, quatro caracteres a cada três bytes, então o Base64 fica um terço mais curto para os mesmos dados. Se o que você tem começa com algo como SGVsbG8 e contém letras depois do f, é Base64: decodifique com o Base64 para Texto. Para recodificar bytes hex como Base64 para uma API ou um arquivo de configuração, use o Hex para Base64. A comparação entre hex, Base32, Base58 e Base85 mostra quando cada um é usado.

Hex para string no código

bytes.fromhex("48656c6c6f").decode("utf-8")       # 'Hello'
bytes.fromhex("48 65 6c 6c 6f").decode("utf-8")   # spaces are fine: 'Hello'

bytes.fromhex ignora espaços, mas rejeita dois-pontos e 0x, então remova esses antes. Em Node.js:

Buffer.from("48656c6c6f", "hex").toString("utf8");   // 'Hello'
Buffer.from("48zz65", "hex");                         // <Buffer 48>

A segunda linha mostra uma armadilha: Buffer.from para no primeiro caractere que não é hex e devolve o que tem até ali, sem erro. Há mais padrões nas páginas de Python e Node.js.

Perguntas frequentes

Como converter hex para ASCII?

Cole o hex e leia a saída. O ASCII só cobre os bytes de 00 a 7F, então ajuste Charset para ASCII se quiser que qualquer coisa acima disso apareça como � em vez de ser lida como UTF-8.

O que é 48 65 6c 6c 6f em texto?

Hello. 48 é H, 65 é e, 6c é l (duas vezes) e 6f é o.

Por que meu hex vira é ou outros caracteres estranhos?

Os bytes são UTF-8 e estão sendo lidos como Latin-1 ou Windows-1252, ou o contrário. c3 a9 é é em UTF-8 e é em Windows-1252. Troque o Charset até o texto ficar correto.

O que significa "número ímpar de dígitos hex"?

Cada byte tem dois dígitos hex, então o total precisa ser par. Um dígito se perdeu na cópia, muitas vezes no começo ou no fim. Confira o primeiro e o último par da entrada.

Dá para criar um link para uma conversão?

Dá. Adicione #in= e o hex ao endereço da página, por exemplo /hex-to-text/#in=48656c6c6f. A parte depois do # fica no navegador e não é enviada ao servidor.