Xxencode y xxdecode

Codifica texto, bytes en hexadecimal o archivos con xxencode, o decodifica bloques xxencode para recuperar los datos originales. El alfabeto usa solo letras, dígitos y los signos más y menos.

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

Cómo se usa

  1. Elige Codificar para generar un bloque xxencode, o Decodificar para convertir uno de nuevo en datos.
  2. Deja activada la opción Líneas begin / end e indica un Nombre de archivo para obtener un bloque completo, o desactívala para obtener solo las líneas de datos.
  3. Escribe o pega la entrada, o abre un archivo. El resultado se actualiza mientras escribes.
  4. Copia el resultado o descárgalo. Al decodificar, elige Hexadecimal como Formato de salida o descarga el archivo si los datos no son texto.

¿Qué es xxencode?

Xxencode conserva la estructura de uuencode y solo cambia los caracteres. Cada 3 bytes siguen convirtiéndose en cuatro valores de 6 bits, las líneas de datos siguen conteniendo hasta 45 bytes tras un carácter de longitud y el bloque sigue estando entre una línea begin 644 name y una línea end.

Los 64 valores se asignan a +, -, los dígitos 0-9, las mayúsculas A-Z y las minúsculas a-z, en ese orden. El carácter de longitud usa la misma tabla, así que una línea completa de 45 bytes empieza por h, y la línea vacía anterior a end es un único +. Como la estructura es idéntica, la salida tiene el mismo tamaño que con uuencode: aproximadamente un 38 % más que la entrada, contando los caracteres de longitud y los saltos de línea.

Por qué se creó xxencode

La salida de uuencode está llena de signos de puntuación como [, ], \, ^ y !. Los mainframes de IBM usan EBCDIC en lugar de ASCII, y esos caracteres ocupan posiciones diferentes en las distintas páginas de códigos EBCDIC. Cuando el correo pasaba por pasarelas entre redes ASCII y EBCDIC, esos caracteres podían traducirse mal y el archivo quedaba dañado.

Las letras, los dígitos y los signos más y menos son iguales en todas las páginas de códigos EBCDIC, así que el texto xxencode se convierte sin problemas en ambos sentidos. Más tarde, MIME logró el mismo objetivo: Base64 también usa solo letras, dígitos y unos pocos símbolos idénticos en ASCII y EBCDIC. Xxencode nunca llegó a ser tan común como uuencode, y con el tiempo Base64 sustituyó a ambos.

Uuencode y xxencode, cara a cara

UuencodeXxencode
CaracteresASCII 32 a 95, acento grave para el cero+ - 0-9 A-Z a-z
Una línea completa de 45 bytes empieza porMh
Última línea antes de end`+
Seguro a través de pasarelas EBCDICNoSí

Especificación

Alfabeto+ - 0-9 A-Z a-z
Tamaño de salidaAprox. 137%, incluidos los prefijos de línea
RellenoLíneas de hasta 45 bytes
Estándarxxencode
Distingue mayúsculas y minúsculasSí

Ejemplos

Entrada (UTF-8)Salida
Hello, World!begin 644 data.bin BG4JgP4wg63RjQalY6E++ + end
Base64.isbegin 644 data.bin 7Ea3nNHMo9aZn + end
你好begin 644 data.bin 4t9qUtOKx + end

Preguntas frecuentes

¿Cómo distingo uuencode de xxencode?
Fíjate en las líneas de datos. Las líneas xxencode contienen solo letras, dígitos y los signos más y menos, y las líneas completas empiezan por h. Las líneas uuencode contienen signos de puntuación y las completas empiezan por M. Si aquí la decodificación falla con un carácter no válido, prueba la página uuencode.
¿La herramienta escribe las líneas begin y end?
Sí, de forma predeterminada escribe begin 644 con el nombre de archivo que introduzcas, y las líneas de cierre. Desactiva la opción si solo necesitas las líneas de datos codificados.
¿Puedo decodificar un bloque sin la línea begin?

Sí. Sin línea begin, cada línea no vacía se decodifica como datos. Con ella, la decodificación empieza después de esa línea y termina en la línea end, así que el texto de alrededor se ignora.

¿Todavía se usa xxencode?
Rara vez. Se encuentra sobre todo en archivos antiguos de correo y de grupos de noticias. Para datos nuevos, Base64 es compatible prácticamente en todas partes y es igual de seguro en canales que solo admiten texto.