Cómo convertir texto a hex
- Escribe o pega el texto en Entrada · Texto. El hex aparece en Salida · Hex mientras escribes.
- Bajo la entrada, Juego de caracteres decide cómo se convierten los caracteres en bytes. Déjalo en UTF-8 salvo que el sistema receptor espere otra cosa.
- Bajo la salida, elige Mayúsc./minúsc. (minúsculas o MAYÚSCULAS), Separador (ninguno, espacio,
:,0xo\x) y Bytes por línea (ninguno, 16 o 32). - Usa Copiar salida o Descargar con el resultado. El botón Hex → Texto lo vuelve a convertir en texto, igual que Hex a texto.
Estilos de salida
Las opciones de separador y de mayúsculas cubren los sitios habituales donde se pega hex. Para el texto Hi!:
| Ajustes | Salida | Dónde encaja |
|---|---|---|
| ninguno, minúsculas | 486921 | hashes, URL, JSON |
| espacio, MAYÚSCULAS | 48 69 21 | editores hex, documentación de protocolos |
: | 48:69:21 | huellas, listas al estilo de las MAC |
0x | 0x48 0x69 0x21 | código fuente en C y ensamblador |
\x | \x48\x69\x21 | escapes de cadena en C, Python, printf de Bash |
La forma \x se mete directamente en un literal de cadena: printf '\x48\x69\x21' en Bash imprime Hi!. Bytes por línea divide la salida larga en filas de 16 o 32 bytes para que puedas contar los desplazamientos a ojo.
Un carácter, uno o más bytes
Los caracteres ASCII ocupan un byte cada uno, y UTF-8 los deja idénticos, así que para el texto en inglés ambos juegos de caracteres dan el mismo hex. Todo lo demás depende del juego de caracteres:
| Texto | UTF-8 | ISO-8859-1 | UTF-16LE |
|---|---|---|---|
A | 41 | 41 | 41 00 |
é | c3 a9 | e9 | e9 00 |
€ | e2 82 ac | no disponible | ac 20 |
👋 | f0 9f 91 8b | no disponible | 3d d8 4b dc |
Los caracteres que un juego de caracteres no puede representar se sustituyen por ?, y la línea de estado indica cuántos se sustituyeron. Si el hex de otro sistema no coincide con el tuyo, revisa primero el juego de caracteres en ambos lados.
Encontrar caracteres invisibles
Convertir a hex es la forma más rápida de ver caracteres que en pantalla parecen nada. Dos cadenas que se imprimen igual pueden tener bytes distintos:
| Hex en UTF-8 | Carácter |
|---|---|
20 | espacio normal |
c2 a0 | espacio de no separación, frecuente en texto copiado de páginas web y de Word |
e2 80 8b | espacio de ancho cero |
ef bb bf | marca de orden de bytes al principio de un archivo |
0d 0a | salto de línea de Windows (0a solo en Linux y macOS) |
Si una contraseña, una clave de API o un valor de configuración es «correcto pero lo rechaza», pégalo aquí con Separador en espacio y busca alguno de estos. La misma comprobación ayuda antes de codificar texto en Base64 con Texto a Base64: Base64 conserva cada byte invisible, así que pasan al valor codificado.
Texto a hex en código
"Hi!".encode("utf-8").hex() # '486921'
"Hi!".encode("utf-8").hex(" ") # '48 69 21' (separator argument, Python 3.8+)
"é".encode("latin-1").hex() # 'e9'
const hex = Array.from(new TextEncoder().encode("café"),
b => b.toString(16).padStart(2, "0")).join(" ");
// '63 61 66 c3 a9'
TextEncoder siempre produce UTF-8. Las páginas de JavaScript y Python muestran las llamadas equivalentes para Base64.
Preguntas frecuentes
¿Cómo convierto una cadena a hex?
Pega la cadena en la entrada. Cada carácter se convierte en sus valores de byte en el juego de caracteres elegido, dos dígitos hex por byte. En Python, lo mismo es "Hello".encode("utf-8").hex().
¿Cómo se escribe "Hello" en hexadecimal?
48 65 6c 6c 6f en ASCII y en UTF-8, que coinciden para las letras inglesas normales. En UTF-16LE es 48 00 65 00 6c 00 6c 00 6f 00.
¿Por qué é se convierte en dos bytes, c3 a9?
UTF-8 codifica todos los caracteres por encima de U+007F con dos a cuatro bytes. Pon Juego de caracteres en ISO-8859-1 (Latin-1) o Windows-1252 si necesitas el byte único e9.
¿Cómo obtengo hex con 0x delante de cada byte?
Pon Separador en 0x. La salida queda así: 0x48 0x65 0x6c 0x6c 0x6f. Para un literal de array completo en C o Rust, Base64 a array de bytes escribe también la declaración.