Texto a binario
Este conversor muestra los bytes UTF-8 detrás de cualquier texto como grupos binarios de 8 bits, y viceversa. Los caracteres ASCII usan un byte, los emoji usan cuatro; el decodificador rechaza entrada que no sea múltiplo de 8 bits o no sea UTF-8 válido. Todo se ejecuta localmente en tu navegador.
Texto a binario: explicación
No existe el binario de una letra: los bits describen bytes, y los bytes dependen de la codificación. Esta herramienta muestra la codificación que la web adoptó —UTF-8, según RFC 3629—, en la que cada carácter de a a 🙂 es de uno a cuatro bytes, representados como grupos de 8 bits.
La codificación es autodescriptiva: el primer byte anuncia la longitud. Un byte que empieza con 0 es un byte ASCII; 110 empieza dos; 1110 empieza tres; 11110 empieza cuatro; cada byte de continuación empieza con 10. Memoriza esa regla y la salida se vuelve legible.
El interruptor de dirección decodifica hacia atrás: pega bits, obtén texto. Decodificar es deliberadamente estricto: un conteo de bits que no sea un número entero de bytes, o bytes que rompan las reglas de continuación de UTF-8, son rechazados en lugar de decodificarse en caracteres de reemplazo. La conversión ocurre en esta pestaña; no se sube nada.
Los bits crudos son para ver; cuando esos bytes tienen que viajar por un canal solo de texto, base64 es el envoltorio estándar, y el Guía de Base64 explicada explica por qué fue diseñado así.
El binario es verboso —ocho caracteres por byte— y el Comparación Base64 vs hexadecimal muestra por qué hexadecimal suele ganar en papel y cómo se relacionan las dos notaciones.
Cómo el texto se convierte en bits
El conversor pasa tu texto al TextEncoder del propio navegador, que emite bytes UTF-8 directamente. Eso importa para los emoji: las cadenas de JavaScript almacenan 🙂 como dos mitades sustitutas, pero el codificador trabaja con puntos de código, por lo que produce una secuencia de cuatro bytes. Cada byte se rellena exactamente con ocho bits y se agrupa —ocho bytes por línea por defecto.
- Codificar: la cadena se convierte en bytes UTF-8 mediante TextEncoder —sin BOM, sin dependencia de locale.
- Renderizar: cada byte se escribe como 8 bits, con relleno de ceros —0x48 es 01001000, no 1001000.
- Agrupar: los bytes se separan con espacios, las líneas con saltos de línea, según la agrupación que elijas.
- Decodificar: el camino inverso elimina cada carácter que no sea 01, reensambla bytes y decodifica UTF-8 de forma estricta.
Leyendo la salida: el byte inicial te dice la longitud
El objetivo de diseño de UTF-8 era la compatibilidad con ASCII, y los patrones lo demuestran. ASCII mantiene sus códigos de un byte familiares —01000001 es A en ambos—, mientras que las secuencias más largas se construyen con bytes iniciales y de continuación en patrones fijos:
- é (U+00E9) es 11000011 10101001 —un byte inicial de dos bytes y uno de continuación.
- 🙂 (U+1F642) es 11110000 10011111 10011001 10000010 —la forma de cuatro bytes.
- Un byte con prefijo 10 aislado es una continuación sin inicial —la firma clásica de corrupción.
| Rango de punto de código | Bytes | Patrón |
|---|---|---|
| U+0000 – U+007F (ASCII) | 1 | 0xxxxxxx |
| U+0080 – U+07FF | 2 | 110xxxxx 10xxxxxx |
| U+0800 – U+FFFF | 3 | 1110xxxx 10xxxxxx 10xxxxxx |
| U+10000 – U+10FFFF (los emoji viven aquí) | 4 | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx |
Lo que el decodificador rechaza y por qué
Decodificar acepta formato deliberadamente desordenado: espacios, comas y saltos de línea se eliminan antes de analizar. Quedan dos rechazos: un conteo de bits que no sea múltiplo de 8 no puede dividirse en bytes —el error informa el conteo exacto— y los bytes que rompan los patrones anteriores son rechazados por un decodificador UTF-8 fatal en lugar de reemplazarse con U+FFFD.
Ese segundo rechazo ahorra tardes: un decodificador permisivo convierte una secuencia rota en una cadena de marcas � que parecen plausibles y están erradas en silencio. Rechazar significa que se investiga la causa en lugar de enviarse.
Dónde aparecen los grupos de 8 bits en otros lugares
La red llama a un byte octeto: una dirección IPv4 es cuatro de estos grupos en decimal, y una máscara de subred es una secuencia de 1s seguidos de 0s en los mismos 32 bits. La vista binaria también explica mojibake —é en UTF-8 es 11000011 10101001, y si se lee como Latin-1 esos bytes son à y ©, el patrón é que ves cuando UTF-8 se decodifica con la codificación incorrecta. Ver los bytes es el diagnóstico más rápido.
Preguntas frecuentes
¿Al convertir texto a binario se sube algo?
No. Los bytes vienen del TextEncoder integrado del navegador, decodificado por su TextDecoder —ambos en esta pestaña; no se realiza ninguna solicitud durante una conversión, lo que confirma el panel Network de DevTools. La página se sirve con connect-src 'self', por lo que el navegador rechazaría cualquier llamada saliente que un script intentara.
¿La forma binaria de un carácter es siempre la misma?
No —depende de la codificación. é es dos bytes (11000011 10101001) en UTF-8, un byte (11101001) en Latin-1. Esta herramienta siempre usa UTF-8, el estándar de la web según RFC 3629, coincidiendo con lo que transmiten los navegadores y lo que asumen la mayoría de formatos de archivo.
¿Cuántos bits ocupa un emoji en UTF-8?
La mayoría ocupa cuatro bytes —32 bits— porque están por encima de U+10000, el rango que UTF-8 codifica con un byte inicial 11110xxx y tres de continuación. Algunos símbolos antiguos como ☺ están por debajo de U+10000 y ocupan tres. ASCII es el otro extremo: un byte por carácter.
¿Por qué mi decodificación fue rechazada por no ser múltiplo de 8?
Los solo se convierten en bytes en grupos completos de ocho; un resto significa que falta o sobra algo —un pegado truncado, una línea eliminada, un dígito suelto. El error indica el conteo exacto de bits. El formato nunca es la causa: espacios y saltos de línea se eliminantes antes del conteo.
¿Qué significa el error de UTF-8 inválido en decodificación?
Los bytes rompieron el contrato de UTF-8: un byte de continuación sin inicial, una secuencia multibyte cortada al final, o un patrón imposible. La herramienta decodifica de forma fatal —rechazando en lugar de sustituir con marcas U+FFFD— porque una salida mojibake en silencio es peor que un error. Datos que nunca fueron UTF-8, como texto Latin-1, activan esto por diseño.
¿Puedo pegar binario con espacios o saltos de línea?
Sí. Se elimina cada carácter que no sea 0 o 1 antes de analizar, por lo que grupos espaciados, volcados de un byte por línea y listas separadas por comas se analizan todos. Si los propios dígitos están dañados, la decodificación estricta lo detecta —se perdonan el formato, no los datos.
¿Qué herramientas relacionadas debería usar después?
- Codificar y decodificar Base64Decodifica y codifica Base64 estándar y URL-safe, con descarga binariaAbrir
- Base64 vs hexadecimalComparativa directaAbrir
- Cómo funciona Base64Guía en lenguaje sencilloAbrir
- Codificar y decodificar URLCodifica y decodifica distinguiendo + de %20Abrir
- Herramientas de codificaciónBase64, codificación de URL, hashes e inspección de tokens.Abrir
- Herramientas de textoCompara, convierte y transforma texto plano y código.Abrir