> unix | clássico | legado <

// UUencoding — codificação Unix-to-Unix para transmitir dados binários através de canais apenas de texto

[UNIX]

Padrão Unix clássico

Método de codificação histórico usado por décadas em Unix/Linux para anexos de e-mail, Usenet e transferência de arquivos.

[COMPATÍVEL]

Alta compatibilidade

Suportado nativamente por muitas ferramentas de linha de comando, clientes de e-mail antigos e scripts em Unix.

[AUTO-CONTIDO]

Formato auto-contido

Inclui permissões e nome de arquivo na saída codificada, permitindo reconstruir o arquivo original com precisão.

>> detalhes técnicos

Como funciona o UUencoding:

UUencoding converte dados binários em texto ASCII usando caracteres imprimíveis a partir do espaço (ASCII 32). Assim como Base64, codifica 3 bytes em 4 caracteres, mas com um conjunto de caracteres diferente e linhas begin/end que carregam metadados de arquivo.

Exemplo:

"Hello" → begin 644 data\n%2&5L;&\\`\n`\nend

Por que usar UUencoding:

  • >Compatibilidade com sistemas e scripts Unix legados
  • >Preserva permissões e nome de arquivo
  • >Bom para inspecionar anexos e arquivos antigos
  • >Adequado quando o fluxo de trabalho espera especificamente UUencode
  • >Útil em canais apenas texto onde Base64 não é exigido

>> perguntas frequentes

O que é UUencoding?

UUencoding (Unix-to-Unix encoding) é um esquema de codificação de binário para texto usado historicamente para transferir arquivos binários através de canais apenas texto, como e-mail e Usenet.

Qual a diferença entre UUencoding e Base64?

Ambos codificam 3 bytes em 4 caracteres, mas UUencoding utiliza um conjunto de caracteres diferente que começa no espaço (ASCII 32) e inclui metadados de arquivo nas linhas begin/end.

Quando devo usar UUencoding hoje?

Quando precisa interoperar com ferramentas Unix antigas, processar arquivos legados ou manter compatibilidade com scripts que ainda dependem de UUencode.

UUencoding ainda é relevante?

Base64 domina na maioria dos fluxos modernos, mas UUencoding continua relevante em utilitários Unix/Linux e ambientes legados.

// Referência rápida

NomeDescrição
Length charbyte count + 32 (45 bytes -> M)
Group3 bytes -> 4 chars, each 6 bits + 32 (space..underscore)
Zero valuebacktick ` instead of space
Lineup to 45 bytes -> 60 chars
Headerbegin 644 filename
Trailer` line, then end

// Exemplo resolvido

Input   Cat      (0x43 0x61 0x74)
Bits    010000 110110 000101 110100  = 16 54 5 52
+32     48 86 37 84  ->  0 V % T
Line    #0V%T        (# = 3 bytes + 32)

begin 644 cat.txt
#0V%T
`
end

>> Mais perguntas

P: O que é UUencode?

R: Um método histórico do Unix («Unix-to-Unix encode») que converte dados binários em caracteres ASCII imprimíveis para envio por e-mail ou Usenet. 3 bytes viram 4 caracteres, com ~33 % de sobrecarga.

P: Como o UUencode difere do Base64?

R: Ambos convertem 3 bytes em 4 caracteres. O UUencode soma 32 a cada valor de 6 bits (caracteres do espaço até «_»), o Base64 usa A–Z a–z 0–9 + /. O UUencode ainda adiciona um caractere de comprimento por linha e linhas begin/end com nome de arquivo e permissões.

P: O UUencode ainda é usado?

R: Raramente. O MIME com Base64 o substituiu em grande parte no e-mail. Ainda aparece em arquivos antigos da Usenet e nas ferramentas Unix uuencode/uudecode. Para algo novo, prefira Base64.

Outros idiomas