2015-11-19 99 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

相關問題