2015-11-19 5 views
0

Быстрый вопрос, мой первоначальный размер файла pdf составляет около 24 МБ, однако, когда я кодирую его на строку base64, размер строки составляет около 31 МБ, просто интересно, почему?Почему размер строки с кодировкой base64 больше исходного файла

Легко понять для файла изображения, так как он может потерять некоторое сжатие, но это также происходит с pdf или некоторыми другими файлами формата?

+2

По той же причине, что '9' в двоичном формате' 1001', занимает в четыре раза больше места! Вы переходите с base-256 на base-64, это придет с некоторым увеличением пространства - как правило, на 33%, потому что base-64 не является глупым и включает в себя некоторую переупаковку данных. –

+0

смысл, спасибо @Niet the Dark Absol – leonsPAPA

ответ

10

просто интересно, почему

Поскольку Base64 имеет меньше значимых битов на байт, чем двоичный формат данных (обычно 6 вместо 8). Это специально для того, чтобы он мог пережить различные текстовые преобразования, которые не были бы бинарными данными.

Wikipedia's page имеет хорошую диаграмму, показывающую это:

enter image description here

Обратите внимание, как Base64 только используя нижние шесть битов каждого байта, и поэтому «Человек» заканчивает быть длиной четыре байта.

Легко понять, для файла изображения, поскольку, так как он может потерять некоторое сжатие

Нет, Base64 кодирование происходит без потерь. Когда вы его декодируете, вы получаете байт за байт, с чего вы начали.

+0

Отличный пример и узнать его. [email protected] Crowder – leonsPAPA

Смежные вопросы