MiServe DevTools

Tus pegatinas

Fija aquí tus herramientas. Se guardan en este navegador.

Conversor de texto a hexadecimal, binario y bytes

Ve los mismos bytes como texto UTF-8, hexadecimal, binario, decimal, octal y Base64, y edita cualquiera de ellos para actualizar el resto.

Separador entre bytes
Tamaño de grupo en binario

Funciona en tu navegador. Nada de lo que pegas se sube.

Acerca de esta herramienta

Una secuencia de bytes, seis formas de escribirla

El texto se almacena como bytes, y un byte es un número de 0 a 255. El hexadecimal escribe cada byte con dos dígitos (48), el binario con ocho bits (01001000), el octal con tres dígitos (110) y el decimal como un número normal (72). Los cuatro son el mismo byte, que es la letra H en ASCII y en UTF-8. Base64 empaqueta cada tres bytes en cuatro caracteres imprimibles.

Las vistas de esta página muestran siempre los mismos bytes. Escribe en cualquiera de ellas y las demás se recalculan. Si lo que escribes no se puede leer, ese campo se marca y los demás conservan su último contenido válido.

Los caracteres no son bytes

La vista de texto se codifica en UTF-8, donde cada punto de código ocupa de uno a cuatro bytes. Las letras ASCII ocupan uno, é ocupa dos (c3 a9), la mayoría de los caracteres CJK ocupan tres y la mayoría de los emojis ocupan cuatro o más. Por eso el número de bytes y el de caracteres no coinciden.

El número de caracteres es el de clústeres de grafemas, las unidades que un lector percibe como un solo carácter, cuando el navegador ofrece Intl.Segmenter. Un emoji de familia es un solo grafema formado por varios puntos de código unidos con caracteres de unión de ancho cero, así que también se muestra el número de puntos de código.

No toda secuencia de bytes es UTF-8 válido. Cuando escribes bytes que no lo son, la vista de texto muestra el carácter de reemplazo U+FFFD en lugar de los bytes no válidos y la herramienta te avisa.

Formatos de entrada aceptados

Los bytes pueden ir separados por espacios, saltos de línea, comas o guiones bajos, y en hexadecimal también por dos puntos o guiones, como en una dirección MAC. Se aceptan los prefijos 0x, \x, 0b y 0o, así que puedes pegar los valores de un array literal del código fuente, sin los corchetes. Los dígitos escritos sin separadores se leen con un ancho fijo: dos dígitos hexadecimales, ocho bits o tres dígitos octales por byte.

Una coma o un prefijo siempre empiezan un valor nuevo, así que 0b1000, 0b0001 son los dos bytes 8 y 1. El binario escrito en grupos de cuatro separados solo por espacios, como 1000 0001, se lee de ocho en ocho bits y da un solo byte.

El estilo de salida Prefijo 0x escribe una lista separada por comas como 0x48, 0x65, lista para pegarla de nuevo en el código. Las vistas binaria y octal usan 0b y 0o de la misma forma, y la vista decimal escribe números sin prefijo. Los bytes en decimal no tienen un ancho fijo, así que mantienen un espacio entre ellos aunque el separador sea Ninguno.

Preguntas

¿Cómo convierto texto a hexadecimal?

Primero cada carácter se codifica como bytes, aquí con UTF-8, y cada byte se escribe con dos dígitos hexadecimales. La palabra Hi se convierte en 48 69. Escribe el texto en el primer campo y lee la vista hexadecimal.

¿Por qué un carácter produce varios bytes?

UTF-8 usa un solo byte únicamente para ASCII. Las letras acentuadas como é necesitan dos bytes, la mayoría de los caracteres chinos, japoneses y coreanos necesitan tres, y la mayoría de los emojis necesitan cuatro o más.

¿Qué significa el carácter � en el texto?

Es U+FFFD, el carácter de reemplazo. Aparece donde los bytes no son UTF-8 válido, por ejemplo cuando los datos son binarios o se escribieron en otra codificación, como Latin-1 o UTF-16.

¿Se envía mi texto a un servidor?

No. La conversión la hace JavaScript en la pestaña de tu navegador. Lo que escribes no se envía a ninguna parte ni se guarda.

Más herramientas de Codificación