前面整理了websocket的知识,其中有一个base64编码的小知识,今天就对这个小知识进行一下整理。
1、Base64
Base64是一种基于64个可打印字符来表示二进制数据的表示方法。因为只有64种字符,使用6位就可表示过来,所以base64是每6位一个单元,对应某个可打印字符。
哪些是可打印字符?其实就是 A-Z,a-z,0-9,+,/ 这64个字符。如下图所示:
Base64可以将任何数据都进行编码,因为计算机本身就是二进制存储的。
2、编码原理
下面举几个例子,边看例子边讲解:
对字符串 Man进行编码,原有数据占三个字节,每个字节8位。转换过程如下图所示:
编码过程是先进行6位分组,但是计算机是按照字节存储的,最少8位,就在最高的 2 位进行补 0,所以编码后的数据比原始数据多 1/3 的空间。最终,字符串 [ Man ] 经过Base64编码变成了字符串 [ TWFu ],由之前的 3 个字节变成了 4 个字节。
如果原有的字符串不是6的倍数呢?
这个也是通过补位进行实现&#x