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