2

Я помню, как где-то читал, что любые двоичные файлы, отправленные в приложении к электронному письму, должны быть вначале UUENCODEd, что значительно увеличивает размеры файлов, поэтому лучше отправлять файлы с помощью других средств прямой передачи, таких как FTP, Skype и т.д.

Насколько больше UUENCODE сделает мои двоичные файлы?

4 ответа4

4

Короткий ответ:

Размер файла с кодировкой uuencoded будет примерно на 35% больше исходного файла.


Длинный ответ:

Файлы Uuencode выглядят так:

begin 600 filename
*"F9O;R!B87(*"@``
`
end              
  • Это 7 байтов для begin , три для разрешений, два для разделяющих пробелов.
  • X байт для имени файла (в зависимости от имени)
  • Тогда фактические закодированные данные. Каждые 6 бит сопоставляются с 8 битами (в результате все печатные символы ASCII). Это увеличивает размер до 8/6, или 1⅓ раза от первоначального размера.
  • Затем результат разбивается на строки по 65 символов, поэтому результат получается на 80 символах. широкий экран. Это добавляет дополнительную новую строку за 65 символов. Таким образом , увеличение размера файла до 1/65 - я
  • Наконец 3 байта для end

Таким образом, мы получаем: 13 байт плюс длина имени файла плюс 1 68/195- й от исходного размера файла.

(The 68/195 й является 1⅓ плюс 1/65, или 1 65/195 плюс 3/195. Это очень близко к 35%, поэтому эмпирическое правило таково, что «размер увеличивается на добрую треть».

2

Обычные современные почтовые клиенты будут использовать base64, что увеличит размер файла примерно на 35%, но только в пределах электронной почты.

В эти дни обычно используется base64. Каждый байт исходного двоичного файла содержит 8 битов. Base64 может хранить эквивалент 6 битов исходных данных в каждом закодированном байте. Таким образом, кодированный размер составляет 8/6 от исходного:

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

А затем добавляются разрывы строк, что добавляет еще пару процентов.

Конечно, после того, как файл будет декодирован для сохранения в файловой системе получателя, декодированный файл будет идентичен оригиналу.

2

Хотя фактический ответ (как дали @Per Salmi и @depquid) составляет чуть более 33% (3 байта становятся 4, плюс окончания строк и некоторая служебная работа), вам не придется беспокоиться о uuencode .

uuencode датируется действительно старыми днями UNIX, до того, как появились почтовые программы MIME. В те времена, чтобы обходить байты в текстовых средах (например, Mail, netnews/usenet), вам пришлось бы вручную кодировать файл, чтобы обеспечить безопасность 7-битных символов. Затем получатель должен был бы вручную сохранить файл где-нибудь, возможно, объединить и заказать многократные письма / публикации, запустить uudecode (который был достаточно умен, чтобы игнорировать что-либо вне блоков BEGIN / END) и получить двоичный файл. Но нам больше не нужно этого делать, по крайней мере, не для почты.

Если вы используете какой-либо современный почтовик, это кросс-кодирование уже происходит автоматически. Двоичные элементы MIME обычно кодируются в base64 (например, состояния @depquid).

Итак, вы уже выполняете кодировку MIME Base64, которая взрывает файл чуть более чем на 33%, если вам интересно узнать, как распределяется полоса пропускания. Выполнение uuencode/uudecode просто добавит еще больше работы как на вашей стороне, так и на стороне получателя.

0

Я не думаю, что вы можете точно сказать, насколько большим будет uuencoded контент, так как он зависит от реального контента, но заявлено, что он как минимум на 40% больше, чем оригинал в разделе недостатков в Википедии.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .