Conversor de texto a octal y de octal a texto

Escribe cada byte de tu texto como un número octal de tres dígitos o convierte una lista de valores de byte en octal de nuevo en texto legible. Funciona con UTF-8 y con muchos juegos de caracteres heredados.

Se ejecuta por completo en tu navegador. No se sube nada.

Cómo se usa

  1. Elige Codificar para convertir texto a octal o Decodificar para convertir valores octales de nuevo en texto.
  2. Escribe o pega la entrada, o abre un archivo para convertir sus bytes.
  3. Selecciona un separador para la salida: Espacio, Ninguno, Coma o Salto de línea.
  4. Copia el resultado o descárgalo como archivo.

¿Qué es el sistema octal?

El sistema octal, o Base8, escribe los números con los dígitos del 0 al 7. Cada dígito octal representa exactamente tres bits, lo que hizo popular el octal en los primeros equipos informáticos cuyo tamaño de palabra era múltiplo de tres, como el PDP-8 de 12 bits y el PDP-10 de 36 bits. Hoy sobrevive sobre todo en las secuencias de escape y en los permisos de archivo de Unix.

Un byte contiene un valor de 0 a 255, que en octal va de 0 a 377. Este conversor escribe cada byte de la entrada con exactamente tres dígitos octales, con ceros a la izquierda, de modo que todos los grupos tienen el mismo ancho e incluso pueden unirse sin separador. Primero, el texto se convierte en bytes con la codificación de texto seleccionada: un byte por carácter para ASCII simple y de dos a cuatro bytes por carácter para otros sistemas de escritura en UTF-8.

Secuencias de escape octales

C, C++, Python, Perl y el printf del shell permiten escribir un byte como una barra invertida seguida de hasta tres dígitos octales: \101 es la letra A y \012 es un salto de línea.

Esta herramienta genera solo dígitos, sin barras invertidas. Para construir una cadena con escapes, toma la salida separada por espacios, sustituye cada espacio por una barra invertida y añade otra delante del primer grupo. Para decodificar secuencias de escape, haz lo contrario y sustituye las barras invertidas por espacios, porque el decodificador solo acepta dígitos y separadores.

Los permisos de archivo como 755 también son octales, pero son números, no texto. Para convertir un número así a binario o decimal, usa el conversor de bases numéricas.

Octal en código

# Python
' '.join(f'{b:03o}' for b in 'Hi'.encode())            # '110 151'
bytes(int(o, 8) for o in '110 151'.split()).decode()   # 'Hi'

# Shell
printf '\110\151\n'        # muestra Hi
printf 'Hi' | od -An -to1   # 110 151

Especificación

Alfabeto0-7
Tamaño de salida3 dígitos por byte (300%)
RellenoNinguno
EstándarOctal posicional
Distingue mayúsculas y minúsculasNo

Ejemplos

Entrada (UTF-8)Salida
Hello, World!110 145 154 154 157 054 040 127 157 162 154 144 041
Base64.is102 141 163 145 066 064 056 151 163
你好344 275 240 345 245 275

Preguntas frecuentes

¿Por qué cada byte tiene tres dígitos octales?

El valor de byte más alto, 255, es 377 en octal, así que tres dígitos siempre bastan. Rellenar los valores más pequeños con ceros a la izquierda hace que todos los grupos tengan el mismo ancho, y eso es lo que permite volver a dividir en bytes una cadena sin separadores.

¿Cómo decodifico octal sin espacios?

Pega los dígitos como una sola cadena continua. El decodificador la divide en grupos de tres, así que la longitud debe ser múltiplo de 3. Si algunos valores tienen menos de tres dígitos, sepáralos con espacios, comas o saltos de línea.

¿Por qué se rechaza un valor como 400?

El 400 octal equivale a 256, que no cabe en un byte. Los valores de byte válidos van de 0 a 377, y el decodificador indica la posición de cualquier grupo fuera de ese rango. Los dígitos 8 y 9 ni siquiera son dígitos octales válidos.

¿Puedo obtener valores octales para otro juego de caracteres?

Sí. Elígelo en el menú Codificación de texto, por ejemplo Windows-1252 o ISO-8859-1 para tener un byte por carácter de Europa occidental, o GBK o Shift_JIS para texto en chino o en japonés.