2015-11-19 1048 views
0

快速问题,我的原始pdf文件大小约为24MB,但是当我将它编码为基于64的字符串时,字符串大小约为31MB,只是想知道为什么?为什么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是如何仅使用每个字节的低6位,所以“人”最终被四个字节长。

这是很容易,因为,因为它可能会失去一些压缩

没有,Base64编码无损理解为图像文件。当你对它进行解码时,你从字节开始逐字节地进行。

+0

很好的例子,并学习它。 [email protected]。克劳德 – leonsPAPA

相关问题