Cómo se usa
- Elige Codificar para generar un bloque xxencode, o Decodificar para convertir uno de nuevo en datos.
- 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.
- Escribe o pega la entrada, o abre un archivo. El resultado se actualiza mientras escribes.
- 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
| Uuencode | Xxencode | |
|---|---|---|
| Caracteres | ASCII 32 a 95, acento grave para el cero | + - 0-9 A-Z a-z |
| Una línea completa de 45 bytes empieza por | M | h |
| Última línea antes de end | ` | + |
| Seguro a través de pasarelas EBCDIC | No | Sí |
Especificación
| Alfabeto | + - 0-9 A-Z a-z |
|---|---|
| Tamaño de salida | Aprox. 137%, incluidos los prefijos de línea |
| Relleno | Líneas de hasta 45 bytes |
| Estándar | xxencode |
| Distingue mayúsculas y minúsculas | Sí |
Ejemplos
| Entrada (UTF-8) | Salida |
|---|---|
Hello, World! | begin 644 data.bin
BG4JgP4wg63RjQalY6E++
+
end |
Base64.is | begin 644 data.bin
7Ea3nNHMo9aZn
+
end |
你好 | begin 644 data.bin
4t9qUtOKx
+
end |
Preguntas frecuentes
¿Cómo distingo uuencode de xxencode?
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?
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.