Subir un archivo
  1. base64hub
  2. Otras bases
  3. Uuencode

Conversor uuencode y uudecode online

Escribe texto para obtener una salida uuencode clásica con las líneas begin y end. Invierte la dirección para usar uudecode: pega un mensaje entero, y el decodificador encuentra la línea begin, decodifica el bloque y te ofrece el archivo con su nombre original.

Gratis sin registro, sin límites Local no se sube nada Nombre de archivo leído de la línea begin Actualizado 27 oct 2026
Entrada 0Bytes 0 BSalida 0

Se procesa en tu navegador. Esta página no puede enviar tus datos a ninguna parte – cómo lo sabemos

Cómo codificar con uuencode y decodificar con uudecode

Para codificar:

  1. Escribe o pega texto en Entrada · Texto. El bloque uuencode aparece en Salida · uuencode.
  2. Pon el Nombre de archivo bajo la salida; va en la línea begin. El valor por defecto es data.bin.
  3. Desmarca líneas begin/end si solo necesitas las líneas codificadas, por ejemplo para incrustarlas en otro formato.

Para decodificar:

  1. Haz clic en uuencode → Texto en el selector de dirección.
  2. Pega los datos uuencode. Pueden incluir el texto del correo o de las news que los rodea; todo lo que va antes de la línea begin se ignora.
  3. Lee el texto en la salida, o haz clic en Guardar bytes para descargar el archivo decodificado con el nombre de la línea begin. Si el contenido es binario, pon A en Hex para inspeccionarlo primero.

Anatomía de un archivo uuencode

Codificar el texto Cat con el nombre de archivo hello.txt da:

begin 644 hello.txt
#0V%T
`
end
  • begin 644 hello.txt indica los permisos Unix y el nombre del archivo.
  • Cada línea de datos empieza con un carácter de longitud: el número de bytes de la línea más 32. # es 35, así que esta línea contiene 3 bytes. Una línea completa contiene 45 bytes y empieza por M, seguida de 60 caracteres.
  • Los caracteres de datos funcionan de forma muy parecida a Base64: cada 3 bytes se convierten en cuatro valores de 6 bits, y cada valor v se escribe como el carácter con código v + 32. El valor 0 se escribe con un acento grave (backtick) en lugar de un espacio.
  • La línea con un solo backtick es una línea vacía de longitud 0, y end cierra el bloque.

Una entrada más larga muestra la estructura de línea completa:

begin 644 fox.txt
M5&AE('%U:6-K(&)R;W=N(&9O>"!J=6UP<R!O=F5R('1H92!L87IY(&1O9RX@
*,#$R,S0U-C<X.0``
`
end

Es The quick brown fox jumps over the lazy dog. 0123456789: 45 bytes en la línea M y 10 en la línea * (42 − 32 = 10). Cada línea lleva su propia longitud y un salto de línea, así que los datos uuencode ocupan alrededor de un 38 % más que la entrada, algo más que Base64.

Dónde sigue apareciendo uuencode

Uuencode viene de Unix-to-Unix Copy (UUCP) y era la forma estándar de enviar archivos binarios por email y Usenet antes de MIME. Hoy te lo encuentras en archivos de correo antiguos, mensajes de Usenet, algunas transferencias de archivos de sistemas embebidos y mainframes, y scripts que pasan archivos a mail.

La convención del backtick viene de esa época. Algunas pasarelas quitaban los espacios finales de las líneas, lo que destruía los datos codificados con espacio para el cero; el backtick sobrevive. Este codificador escribe backticks, y el decodificador acepta ambos.

Uuencode en la línea de comandos y en Python

Con GNU sharutils instalado:

uuencode hello.txt hello.txt > hello.uu
uudecode hello.uu

El primer argumento es el archivo de entrada y el segundo es el nombre que se escribe en la línea begin. uudecode crea el archivo con ese nombre en el directorio actual. Añade -m a uuencode para obtener salida Base64.

En Python, binascii codifica una línea de hasta 45 bytes cada vez:

import binascii

binascii.b2a_uu(b"Cat", backtick=True)   # b'#0V%T\n'
binascii.a2b_uu(b"#0V%T")                # b'Cat'

La línea begin 644 name, la línea final con el backtick y end las tienes que añadir tú. Hay más ejemplos de codificación en la página de Python.

Problemas habituales

  • Un error en la posición 1. No hay línea begin y el texto tampoco son líneas uuencode sueltas. Comprueba que copiaste el bloque entero.
  • Salida sin sentido de un bloque begin-base64. Ese bloque lo escribió uuencode -m y es Base64. Copia las líneas entre begin-base64 y ==== en el decodificador Base64.
  • El archivo está truncado o tiene bytes erróneos cerca del final de las líneas. Un cliente de correo volvió a cortar las líneas o quitó los espacios finales. Cada línea de datos debe estar intacta; intenta conseguir el adjunto original o el código fuente del mensaje.
  • Un mensaje en varias partes solo se decodifica a medias. Los archivos grandes se dividían a menudo en varios mensajes. Une las partes en orden, con un solo begin y un solo end, antes de decodificar.

Preguntas frecuentes

¿Cómo soluciono uuencode: command not found?

El comando no viene instalado por defecto en la mayoría de los sistemas Linux. En Debian y Ubuntu, sudo apt install sharutils añade uuencode y uudecode; Fedora también tiene un paquete sharutils.

¿Qué significa begin 644?

644 es el modo de archivo Unix que debe recibir el archivo decodificado (lectura y escritura para el propietario, solo lectura para los demás), y la palabra que le sigue es el nombre del archivo. uudecode crea ese archivo; esta página usa el nombre para Guardar bytes.

¿Uuencode es lo mismo que Base64?

Los dos convierten 3 bytes en 4 caracteres, pero uuencode usa el rango ASCII que va del espacio al guion bajo y añade un carácter de longitud en cada línea. Base64 tiene otro alfabeto y es el que usa el email MIME. uuencode -m escribe Base64 dentro de un bloque begin-base64.

¿Python todavía puede decodificar archivos uuencode?

Sí, con binascii.a2b_uu, línea a línea. El módulo de más alto nivel uu quedó obsoleto en Python 3.11 y se eliminó en 3.13.