Enviar um arquivo
  1. base64hub
  2. Outras bases
  3. Uuencode

Uuencode e uudecode online

Digite um texto para obter a saída uuencode clássica com as linhas begin e end. Inverta a direção para fazer uudecode: cole uma mensagem inteira, e o decodificador encontra a linha begin, decodifica o bloco e oferece o arquivo com o nome original.

Grátis sem cadastro, sem limites Local nada é enviado Nome do arquivo lido da linha begin Atualizado 27 de out. de 2026
Entrada 0Bytes 0 BSaída 0

Processado no seu navegador. Esta página não consegue enviar seus dados para lugar nenhum – como sabemos

Como fazer uuencode e uudecode

Para codificar:

  1. Digite ou cole o texto em Entrada · Texto. O bloco uuencode aparece em Saída · uuencode.
  2. Defina o Nome do arquivo abaixo da saída; ele vai para a linha begin. O padrão é data.bin.
  3. Desmarque linhas begin/end se você precisa só das linhas codificadas, por exemplo para embuti-las em outro formato.

Para decodificar:

  1. Clique em uuencode → Texto no seletor de direção.
  2. Cole os dados em uuencode. Eles podem incluir o texto do e-mail ou da mensagem de news ao redor; tudo o que vem antes da linha begin é ignorado.
  3. Leia o texto na saída, ou clique em Salvar bytes para baixar o arquivo decodificado com o nome da linha begin. Para conteúdo binário, ajuste Para em Hex para inspecioná-lo antes.

Anatomia de um arquivo uuencode

Codificar o texto Cat com o nome de arquivo hello.txt gera:

begin 644 hello.txt
#0V%T
`
end
  • begin 644 hello.txt traz as permissões Unix e o nome do arquivo.
  • Cada linha de dados começa com um caractere de comprimento: o número de bytes da linha mais 32. # é 35, então esta linha tem 3 bytes. Uma linha cheia tem 45 bytes e começa com M, seguida de 60 caracteres.
  • Os caracteres de dados funcionam de modo muito parecido com o Base64: cada 3 bytes viram quatro valores de 6 bits, e cada valor v é escrito como o caractere de código v + 32. O valor 0 é escrito como crase em vez de espaço.
  • A linha com uma única crase é uma linha vazia de comprimento 0, e end fecha o bloco.

Uma entrada mais longa mostra a estrutura de linha cheia:

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

Isso é The quick brown fox jumps over the lazy dog. 0123456789: 45 bytes na linha M e 10 na linha * (42 − 32 = 10). Cada linha carrega o próprio comprimento mais uma quebra de linha, então os dados em uuencode ficam cerca de 38% maiores que a entrada, um pouco mais que no Base64.

Onde o uuencode ainda aparece

O uuencode vem do Unix-to-Unix Copy (UUCP) e era o jeito padrão de enviar arquivos binários por e-mail e Usenet antes do MIME. Hoje você o encontra em arquivos antigos de e-mail, posts da Usenet, algumas transferências de arquivos em sistemas embarcados e mainframes, e em scripts que passam arquivos para o mail.

A convenção da crase vem daquela época. Alguns gateways removiam espaços no fim das linhas, o que destruía dados codificados com espaço para o zero; a crase sobrevive. Este codificador escreve crases, e o decodificador aceita as duas formas.

Uuencode na linha de comando e em Python

Com o GNU sharutils instalado:

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

O primeiro argumento é o arquivo de entrada e o segundo é o nome escrito na linha begin. O uudecode cria o arquivo com esse nome no diretório atual. Adicione -m ao uuencode para obter saída em Base64.

Em Python, o binascii codifica uma linha de até 45 bytes por vez:

import binascii

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

Acrescente você mesmo a linha begin 644 name, a linha final com crase e o end. Mais exemplos de codificação na página de Python.

Problemas comuns

  • Um erro na posição 1. Não há linha begin e o texto também não é formado por linhas uuencode puras. Confira se você copiou o bloco inteiro.
  • Saída sem sentido a partir de um bloco begin-base64. Esse bloco foi escrito por uuencode -m e é Base64. Copie as linhas entre begin-base64 e ==== para o decodificador Base64.
  • O arquivo está truncado ou tem bytes errados perto do fim das linhas. Um cliente de e-mail quebrou as linhas de novo ou removeu espaços no final. Cada linha de dados precisa estar intacta; tente obter o anexo original ou o código-fonte da mensagem.
  • Um post em várias partes só decodifica em parte. Arquivos grandes costumavam ser divididos em várias mensagens. Junte as partes em ordem, mantendo um único begin e um único end, antes de decodificar.

Perguntas frequentes

Como resolver uuencode: command not found?

O comando não vem instalado por padrão na maioria dos sistemas Linux. No Debian e no Ubuntu, sudo apt install sharutils adiciona uuencode e uudecode; o Fedora também tem um pacote sharutils.

O que significa begin 644?

644 é o modo de arquivo Unix que o arquivo decodificado deve receber (leitura e escrita para o dono, leitura para todos os outros), e a palavra seguinte é o nome do arquivo. O uudecode cria esse arquivo; esta página usa o nome em Salvar bytes.

Uuencode é a mesma coisa que Base64?

Os dois transformam 3 bytes em 4 caracteres, mas o uuencode usa a faixa ASCII do espaço ao sublinhado e acrescenta um caractere de comprimento por linha. O Base64 tem outro alfabeto e é o que o e-mail MIME usa. uuencode -m escreve Base64 dentro de um bloco begin-base64.

O Python ainda decodifica arquivos uuencode?

Sim, com binascii.a2b_uu, uma linha por vez. O módulo de alto nível uu foi descontinuado no Python 3.11 e removido no 3.13.