> unix | clássico | legado <
// UUencoding — codificação Unix-to-Unix para transmitir dados binários através de canais apenas de texto
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.
Alta compatibilidade
Suportado nativamente por muitas ferramentas de linha de comando, clientes de e-mail antigos e scripts em Unix.
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
| Nome | Descrição |
|---|---|
| Length char | byte count + 32 (45 bytes -> M) |
| Group | 3 bytes -> 4 chars, each 6 bits + 32 (space..underscore) |
| Zero value | backtick ` instead of space |
| Line | up to 45 bytes -> 60 chars |
| Header | begin 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.