Como converter hex para texto online
- Cole a sua string hex, ex.:
48 65 6C 6C 6F,0x48,0x65ou\x48\x65. Qualquer combinação de separadores funciona. - O texto decodificado aparece na hora. Se os caracteres parecerem errados, escolha outra codificação: UTF-8, ASCII/Latin-1 ou UTF-16.
- Copie o texto ou baixe-o como arquivo. Clique em Inverter para transformar o texto de volta em hex.
Como funciona a decodificação de hex para ASCII
Cada par de dígitos hex é um byte com valor de 00 a FF. Em ASCII e UTF-8, os bytes 20–7E são caracteres imprimíveis, então 48 65 6C 6C 6F se lê como H, e, l, l, o: “Hello”. Caracteres fora do ASCII ocupam vários bytes em UTF-8.
| Hex | Caractere |
|---|---|
0A | Line feed (nova linha) |
0D | Carriage return (retorno de carro) |
20 | Espaço |
21 / 2C / 2E | ! / , / . |
30–39 | Dígitos 0–9 |
41–5A | Letras maiúsculas A–Z |
61–7A | Letras minúsculas a–z |
C3 A9 | é em UTF-8 |
E2 82 AC | € em UTF-8 |
Como escolher a codificação certa
- UTF-8 – o padrão da web e da maioria dos arquivos e APIs. Texto ASCII puro também é UTF-8 válido.
- ASCII / Latin-1 (Windows-1252) – um byte por caractere, para textos em idiomas da Europa Ocidental (incluindo o português) vindos de sistemas mais antigos. Todo byte corresponde a um caractere, então a decodificação nunca falha.
- UTF-16 LE/BE – dois bytes por caractere, usado pelas APIs do Windows e pelas strings de Java e JavaScript:
48 00 69 00é “Hi” em UTF-16 LE.
Se aparecerem símbolos �, alguns bytes não são válidos na codificação selecionada – ou o hex é de dados binários, como uma imagem, um hash ou dados compactados, e não de texto.
Como converter hex para string em código
- Python:
bytes.fromhex('48656c6c6f').decode() - Node.js:
Buffer.from('48656c6c6f', 'hex').toString() - JavaScript no navegador:
new TextDecoder().decode(Uint8Array.from('48656c6c6f'.match(/../g), (h) => parseInt(h, 16))) - Linux e macOS:
echo 48656c6c6f | xxd -r -p
Perguntas frequentes
Qual é a diferença entre hex para texto e hex para ASCII?
O ASCII abrange 128 caracteres (bytes 00–7F): letras sem acento, dígitos e pontuação. Hex para texto também inclui caracteres de outros idiomas, como as letras acentuadas do português, e emojis, que o UTF-8 armazena em 2 a 4 bytes. Para texto simples sem acentos, os dois dão o mesmo resultado.
Por que aparece um erro de byte incompleto?
Cada byte precisa de exatamente dois dígitos hex. Um número ímpar de dígitos geralmente significa que falta um zero à esquerda (escreva 0A, e não A) ou que um caractere se perdeu ao copiar. A mensagem mostra onde está o problema.
Posso decodificar hex com prefixos 0x ou \x?
Sim. Prefixos como 0x, \x e %, assim como espaços, quebras de linha, vírgulas, dois-pontos e hifens, são removidos automaticamente, então arrays em C, byte strings do Python e dumps hexadecimais podem ser colados diretamente.
Meus dados são enviados para algum lugar?
Não. O hex é decodificado por JavaScript no seu navegador e nunca sai do seu dispositivo.