Base64字符编码

为啥会出现Base64字符编码?

        我们知道处理一串二进制码,操作系统要想知道这串二进制码代表的是哪一个字符,就必须有字符集的帮助,就比如GBK,Unicode,ASCII等等,只要有了这些字符集,二进制码串才会被系统识别并操作(比如说打印出来)。但是有些系统仅提供ASCII字符集,对于其他字符集编码的二进制码串,操作系统不认识(打印出来就是乱码了)。Base64就是用来将非ASCII字符的数据转换成ASCII字符的一种方法。

        但是ASCII的字符中有些是不可见的,有些是控制字符,比如 NUL(空字符)   BS(退格)  LF(换行符),这些字符是不可见的,而且有可能被当成控制字符处理,比如一个纯文本协议,二进制中可能会出现被当做控制字符处理的部分。这样引起传输失败。

        Base64 最早就是用来邮件传输协议中的,原因是邮件传输协议只支持 ascii 字符传递,因此如果要传输二进制文件,如:图片、视频是无法实现的。因此 base64 就可以用来将二进制文件内容编码为只包含 ascii 字符的内容,这样就可以传输了。

如何编码?

        Base64将二进制码串转化为64(刚好是2^6)个可见字符来表示。所以3 * 8位能表示3个字节,64个可见字符只需要6位就能编码,所以这3个字节扩充为4 * 6 位,每个6位再查找索引表找到对应字符,在转成ASCII码,就变成了4个字节。


可见字符编码


Basse64编码过程
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。