Para qué sirve decodificar hexadecimal
El hexadecimal es el idioma en el que las herramientas técnicas te muestran los bytes crudos. Cuando abrís un dump de memoria, inspeccionás un paquete en un protocolo de red con Wireshark, corrés strings o un editor hex sobre un binario, o analizás evidencia en análisis forense, lo que ves son pares de dígitos como 48 6f 6c 61. Este conversor los traduce de vuelta a texto legible al instante, y es un clásico de los CTFs, donde las flags suelen venir escondidas en hex. También sirve en debugging del día a día: verificar qué bytes exactos manda tu API, entender por qué un acento se rompió en el camino, o revisar el payload que quedó logueado en hex. Acepta el hex tal cual lo copiaste —con espacios, saltos de línea, prefijos 0x o \\x, mayúsculas o minúsculas— y decodifica UTF-8 real, no solo ASCII.
Cómo funciona: del par hex al carácter
Un dígito hexadecimal representa 4 bits, así que un par de dígitos representa exactamente un byte: de 00 (0) a FF (255). Decodificar es agrupar los dígitos de a dos, convertir cada par a su número y pedirle a TextDecoder que interprete esos bytes como UTF-8. Por eso una cantidad impar de dígitos es siempre un error: quedó un byte a medias. En sentido inverso, TextEncoder convierte tu texto a bytes UTF-8 y cada byte se escribe con sus 2 dígitos hex.
Acentos y emojis: UTF-8 multibyte en hex
Los primeros 128 caracteres (ASCII) ocupan un byte cada uno, pero todo lo demás usa varios. La ñ son 2 bytes (C3 B1), el € son 3 (E2 82 AC) y un emoji como 🙂 son 4 (F0 9F 99 82). Si alguna vez viste "ñ" donde debía decir "ñ", fue exactamente esto: alguien decodificó esos 2 bytes con la tabla equivocada. Como esta herramienta usa las APIs nativas del navegador, los caracteres multibyte viajan intactos en ambas direcciones.
Herramientas complementarias
Si lo que necesitás es ver un texto como bits en vez de hex, usá el conversor de texto a binario, que muestra cada byte en sus 8 ceros y unos. Y si querés convertir números sueltos entre base 2, 8, 10, 16 o cualquier otra —sin pasar por texto—, eso lo hace el conversor de bases numéricas.
Tabla de referencia: caracteres y su hex
Los caracteres imprimibles de ASCII van del 32 (espacio) al 126 (~). Esta es la chuleta con los más consultados:
| Carácter | Decimal | Hex | Binario |
|---|---|---|---|
| (espacio) | 32 | 20 | 00100000 |
| ! | 33 | 21 | 00100001 |
| # | 35 | 23 | 00100011 |
| $ | 36 | 24 | 00100100 |
| % | 37 | 25 | 00100101 |
| & | 38 | 26 | 00100110 |
| * | 42 | 2A | 00101010 |
| + | 43 | 2B | 00101011 |
| - | 45 | 2D | 00101101 |
| . | 46 | 2E | 00101110 |
| / | 47 | 2F | 00101111 |
| 0 | 48 | 30 | 00110000 |
| 9 | 57 | 39 | 00111001 |
| = | 61 | 3D | 00111101 |
| ? | 63 | 3F | 00111111 |
| @ | 64 | 40 | 01000000 |
| A | 65 | 41 | 01000001 |
| F | 70 | 46 | 01000110 |
| Z | 90 | 5A | 01011010 |
| a | 97 | 61 | 01100001 |
| f | 102 | 66 | 01100110 |
| z | 122 | 7A | 01111010 |
| ñ (UTF-8, 2 bytes) | 195 177 | C3 B1 | 11000011 10110001 |
| 🙂 (UTF-8, 4 bytes) | 240 159 153 130 | F0 9F 99 82 | 11110000 10011111 10011001 10000010 |
Las últimas dos filas muestran por qué "un carácter = un byte" solo vale para ASCII: en UTF-8 la ñ y los emojis se codifican con secuencias de 2 a 4 bytes, y cada uno de esos bytes aparece como un par hex más en la salida.