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