我有 3 个关于 base64 的问题:
1)base64编码目的是二进制转文本。文本不会以二进制形式通过网络发送吗?那么有什么好处呢?
2)过去他们使用7位通信系统,现在是8位。那为什么我们现在还在使用它?
3)它如何增加尺寸?我只取 28 位的 3 个字节并将它们重新排列为 6 位的 4 个字节,但它们总共还是 28 位?
我有 3 个关于 base64 的问题:
1)base64编码目的是二进制转文本。文本不会以二进制形式通过网络发送吗?那么有什么好处呢?
2)过去他们使用7位通信系统,现在是8位。那为什么我们现在还在使用它?
3)它如何增加尺寸?我只取 28 位的 3 个字节并将它们重新排列为 6 位的 4 个字节,但它们总共还是 28 位?
1) 目的不仅是二进制到文本编码,而且是对使用超出标准 7 位 ASCII 代码的特定字符集/代码页的文本进行编码。在二进制数据的情况下,您还会遇到某些值会导致问题的问题。当通过电子邮件或 HTTP 请求的一部分传输时,数据中的 0 值可能被解释为文本的结尾。在接收端,第一个 0 之后的所有内容都可能被“遗忘”,并且数据将被破坏。Base64 编码通过将所有内容编码为 64 个字符的子集来避免所有可能的问题,这些字符独立于实际代码页并且不包含任何控制字符。
文本不会以二进制形式通过网络发送吗?
在引擎盖下,一切都是二进制的,无论是文本、图片、电影,还是执行的代码,都只是内存和处理器寄存器中的一堆零和一。
2) 见 1)
3) 3 个字节是 3 * 8 位 = 24 位信息。一个 base 64 字符只代表 6 bits,因此您需要 4 base64 characters 4 * 6 bits = 24 bits 来编码信息。但是这些base64字符是普通的8位字符,所以实际上这4个base64字符占用了4*8位=32位的空间。这增加了 33%。