rt:众所周知图片base64存储文件大小会比原文件大 为什么会这样呢?
我查了一些base64的算法,有了一些想法补充在问题下面,希望对查到这个问题的诸君有所帮助:
文件转base64的过程其实是二进制转成文本的过程。
二进制转成文本,流程就是将二进制按照八位一个字节转换成ascll码值就完成了转换。
我们将数据每取八位,然后映射到ascll码表上的0~255即可。
但是此时遇到了一个问题,128--255的这一段的标识并不是统一的。比如,130在法语编码中代表了é,在希伯来语编码中却代表了字母Gimel (ג),在俄语编码中又会代表另一个符号。所以此时ascll码只有128位可用,也就是8位一组的传递不行了,那就七位一组进行传递,在最前面补0,就可以用有限的ascll码值传递二进制了。
此时,又遇到了新的问题,除了不稳定的那128--255的ascll,前128位有许多不可见字符,在传输过程中不一定能稳定传递,因此可被用来转换的ascll码数位就不到7位,因此数据被拆为6位一组进行转换传递,在前面补两个0。
1 回答1.6k 阅读
1 回答1.5k 阅读
2 回答1.1k 阅读
因为二进制补零了,6位变8位,总字节长度当然就膨胀了。