Base64編碼爲何會使數據量變大?

        圖片上傳,以二進制字節流byte[]上傳,經過base64_encode以後字符串時數據量明顯變大,爲什麼呢?這裏就得先探究一下什麼是Base64編碼。數組

        Base64編碼的思想是是採用64個基本的ASCII碼字符對數據進行從新編碼。它將須要編碼的數據拆分紅字節數組。以3個字節爲一組。按順序排列24位數據,再把這24位數據分紅4組,即每組6位。再在每組的的最高位前補兩個0湊足一個字節。這樣就把一個3字節爲一組的數據從新編碼成了4個字節。當所要編碼的數據的字節數不是3的整倍數,也就是說在分組時最後一組不夠3個字節。這時在最後一組填充1到2個0字節。並在最後編碼完成後在結尾添加1到2個"="。( 注BASE64字符表:ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/)編碼

從以上編碼規則能夠得知,經過Base64編碼,原來的3個字節編碼後將成爲4個字節,即字節增長了33.3%,數據量相應變大。因此20M的數據經過Base64編碼後大小大概爲20M*133.3%=26.67M。code

相關文章
相關標籤/搜索