Quanto maior o UUENCODE cria arquivos binários?

2

Lembro-me de ler em algum lugar que qualquer arquivo binário enviado anexado a um email deve ser primeiro UUENCODEd, o que torna o tamanho dos arquivos consideravelmente maior, por isso é melhor enviar arquivos por outros meios de transferência direta como FTP, Skype etc.

Quanto maior o UUENCODE fará meus arquivos binários?

    
por glenneroo 19.03.2013 / 19:49

4 respostas

4

Resposta curta:

O tamanho do arquivo uuencoded será cerca de 35% maior que o arquivo original.


Resposta longa:

Os arquivos Uuencode são assim:

begin 600 filename
*"F9O;R!B87(*"@''
'
end              
  • São 7 bytes para begin , três para as permissões, dois para os espaços de separação.
  • X bytes para o nome do arquivo (dependendo do nome)
  • Em seguida, os dados codificados reais. Cada 6 bits é mapeado para 8 bits (com o resultado todos os caracteres ASCII imprimíveis). Isso aumenta o tamanho para 8 / 6 ou 1⅓ vezes o tamanho original.
  • O resultado é então dividido em linhas de 65 caracteres, então o resultado seria em 80 caracteres. panorâmico. Isso adiciona uma nova linha extra por 65 caracteres. Aumentando assim o tamanho do arquivo por 1 / 65 th
  • Finalmente, 3 bytes para end

Assim, obtemos: 13 bytes, mais o tamanho do nome do arquivo, mais 1 68 / 195 th do tamanho do arquivo original.

( 68 / 195 th é 1⅓ mais 1 / 65 ou 1 65 / 195 mais 3 / 195 . Isso é muito próximo de 35%, e é por isso a regra geral é que "o tamanho aumenta em um bom terço).

    
por 19.03.2013 / 20:21
2

Os clientes de e-mail modernos comuns usarão a base64, o que tornará o arquivo 35% maior, mas somente dentro do e-mail.

Atualmente, o base64 é normalmente usado. Cada byte do binário original contém 8 bits. Base64 pode armazenar o equivalente a 6 bits de dados originais dentro de cada byte codificado. O tamanho codificado é 8/6 do original:

8 / 6 = 1.33... = 133% = 33% more

E, em seguida, as quebras de linha são adicionadas, o que adiciona outro par de porcentagens.

É claro que, assim que o arquivo for decodificado para ser salvo no sistema de arquivos do destinatário, o arquivo decodificado será idêntico ao original.

    
por 19.03.2013 / 20:05
2

Embora a resposta real (como dada por @Per Salmi e @depquid) seja apenas um pouco mais de 33% (3 bytes se tornam 4, mais terminações de linha, mais algumas tarefas domésticas) você não terá que se preocupar com uuencode .

uuencode data dos dias realmente antigos do UNIX, antes que os mensageiros do MIME estivessem disponíveis. Naqueles dias, para schlepp bytes ao redor em ambientes somente texto (por exemplo, Mail, netnews / usenet) você teria que codificar manualmente o arquivo para ser seguro de caracteres de 7 bits. Em seguida, o receptor teria que salvar manualmente o arquivo em algum lugar, possivelmente concatenar e solicitar mensagens / postagens múltiplas, executar uudecode (que era inteligente o suficiente para ignorar qualquer coisa fora dos blocos BEGIN / END) e obter o arquivo binário. Mas não precisamos mais fazer isso, pelo menos não para email.

Se você usa um mensageiro moderno, essa codificação cruzada já acontece automagicaly . Elementos MIME binários são geralmente codificados em base64 (como estados @depquid).

Então, você já faz a codificação MIME Base64, o que explode o arquivo um pouco mais de 33% se você está curioso sobre o impacto em sua alocação de largura de banda. Para fazer uuencode / uudecode seria apenas adicionar ainda mais trabalho em ambos os seus e do lado do receptor.

    
por 19.03.2013 / 20:21
0

Eu não acho que você saiba exatamente qual será o tamanho do conteúdo uuencoded, pois ele depende do conteúdo real, mas é declarado como sendo pelo menos 40% maior que o original no secção de desvantagens na Wikipedia .

    
por 19.03.2013 / 20:00