Subir un archivo
  1. base64hub
  2. Otras bases
  3. Hex a texto

Convertidor de hex a texto, ASCII y cadena

Pega bytes en hex como 48 65 6c 6c 6f para leer el texto que forman. Se aceptan espacios, dos puntos y prefijos 0x y \x, y se asume UTF-8 hasta que elijas otro juego de caracteres.

Gratis sin registro, sin límites Local no se sube nada 27 juegos de caracteres, de ASCII a Shift_JIS Actualizado 27 oct 2026
Entrada 0Bytes 0 BSalida 0

Se procesa en tu navegador. Esta página no puede enviar tus datos a ninguna parte – cómo lo sabemos

Cómo convertir hex a texto

  1. Pega el hex en Entrada · Hex. En mayúsculas o minúsculas, con o sin separadores.
  2. El texto aparece en Salida · Texto mientras escribes. Desmarca En vivo si prefieres convertir con Ejecutar.
  3. Si la salida muestra �, abre Juego de caracteres bajo la salida y prueba con otro. UTF-8 es el predeterminado; ASCII, Latin-1, Windows-1252 y 23 más están en la lista.
  4. Usa Copiar salida o Descargar para el texto. Si el hex es el volcado de un archivo y no texto, Guardar bytes escribe los bytes en bruto en disco con una extensión deducida del contenido.

El selector Texto → Hex sobre la herramienta invierte la dirección; también puedes ir a Texto a hex.

Formatos hex que lee el convertidor

El hex aparece escrito de muchas formas según la herramienta que lo generó. Todos estos se decodifican en Hello:

FormatoEjemploOrigen típico
Simple48656c6c6fxxd -p, sha256sum, volcados de bases de datos
Con espacios48 65 6c 6c 6fWireshark, editores hex
Con dos puntos48:65:6c:6c:6fhuellas de certificados, salida de openssl
Con guiones48-65-6C-6C-6FBitConverter.ToString de .NET
Prefijo 0x0x48 0x65 0x6c 0x6c 0x6f o 0x48656c6c6fcódigo C, depuradores
Escapes \x\x48\x65\x6c\x6c\x6fPython, scripts de shell, logs

Las comas, los puntos y comas y los puntos también sirven como separadores. Pega solo las columnas hex: la vista por defecto de xxd empieza cada línea con un desplazamiento como 00000000: y termina con una columna ASCII, así que el convertidor leería el desplazamiento como bytes y luego daría un error en la primera letra de la columna ASCII. Ejecuta xxd -p para obtener hex simple.

Cómo leer hex como ASCII

Cada par de dígitos hex es un byte, y en ASCII cada byte por debajo de 80 es un carácter. Los rangos que conviene recordar:

HexCaracteres
20espacio
30–39dígitos 0–9
41–5AA–Z
61–7Aa–z
21–2F! " # $ % & ' ( ) * + , - . /
0A, 0Dsalto de línea y retorno de carro (0D 0A es un salto de línea de Windows)

Las mayúsculas y las minúsculas están separadas exactamente por 20: 41 es A, 61 es a. Con eso y la tabla puedes leer a ojo un hex corto. 48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 es Hello, world: 2c es la coma y 20, el espacio.

Hex a UTF-8: bytes de 80 a FF

Todo lo que va más allá del inglés básico ocupa más de un byte en UTF-8, y esos bytes son todos 80 o superiores. Los mismos bytes dan un texto distinto según el juego de caracteres con el que los leas:

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

Las tres primeras filas son datos UTF-8; la última son datos Latin-1 o Windows-1252, donde é es el byte único e9. Una serie de caracteres à y â casi siempre significa bytes UTF-8 leídos con un juego de caracteres de un solo byte. Si ningún juego de caracteres da un texto con sentido, probablemente los bytes no sean texto: mira Parece en la línea de estado, que nombra el formato cuando lo reconoce.

Hex, Base64 y los mismos bytes

Hex gasta dos caracteres por byte y Base64 cuatro caracteres por cada tres bytes, así que Base64 es un tercio más corto para los mismos datos. Si lo que tienes empieza por algo como SGVsbG8 y contiene letras posteriores a la f, es Base64: decodifícalo con Base64 a texto. Para volver a codificar bytes hex como Base64 para una API o un archivo de configuración, usa Hex a Base64. La comparación de hex, Base32, Base58 y Base85 explica cuándo se usa cada uno.

Hex a cadena en 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 los espacios pero rechaza los dos puntos y 0x, así que quítalos antes. En Node.js:

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

La segunda línea muestra una trampa: Buffer.from se detiene en el primer carácter que no es hex y devuelve lo que lleva hasta ese punto, sin ningún error. Hay más patrones en las páginas de Python y Node.js.

Preguntas frecuentes

¿Cómo convierto hex a ASCII?

Pega el hex y lee la salida. ASCII solo cubre los bytes de 00 a 7F, así que pon Juego de caracteres en ASCII si quieres que todo lo que esté por encima aparezca como � en lugar de leerse como UTF-8.

¿Qué es 48 65 6c 6c 6f en texto?

Hello. 48 es H, 65 es e, 6c es l (dos veces) y 6f es o.

¿Por qué mi hex se convierte en é u otros caracteres raros?

Los bytes son UTF-8 y se están leyendo como Latin-1 o Windows-1252, o al revés. c3 a9 es é en UTF-8 y é en Windows-1252. Cambia el Juego de caracteres hasta que el texto se lea bien.

¿Qué significa «número impar de dígitos hex»?

Cada byte son dos dígitos hex, así que el total debe ser par. Se perdió un dígito al copiar, a menudo al principio o al final. Revisa el primer y el último par de la entrada.

¿Puedo enlazar una conversión?

Sí. Añade #in= y el hex a la dirección de la página, por ejemplo /hex-to-text/#in=48656c6c6f. La parte que va tras # se queda en el navegador y no se envía al servidor.