维基百科说
当需要编码需要通过设计用于处理文本数据的媒体存储和传输的二进制数据时,通常使用Base64编码方案.这是为了确保数据在运输过程中保持完好无需修改.
但是,数据是否总是以二进制形式存储/传输,因为我们的机器存储二进制文件的内存只取决于你如何解释它?因此,无论您编码位模式010011010110000101101110为ManASCII或如TWFu为Base64,你最终将存储相同的位模式.
如果最终编码是零和1,并且每台机器和媒体都可以处理它们,那么如果数据表示为ASCII或Base64,这又如何重要?
什么是"旨在处理文本数据的媒体"?他们可以处理二元=>他们可以处理任何事情.
谢谢大家,我想我现在明白了.
当我们发送数据时,我们无法确定数据的解释格式是否与我们预期的相同.因此,我们发送以双方都理解的某种格式(如Base64)编码的数据.这样,即使发送方和接收方以不同方式解释相同的内容,但由于它们对编码格式达成一致,因此数据不会被错误地解释.
如果我想发送
Hello
world!
Run Code Online (Sandbox Code Playgroud)
一种方法是用ASCII发送它
72 101 108 108 111 10 119 111 114 108 100 33
Run Code Online (Sandbox Code Playgroud)
但是字节10可能无法正确解释为另一端的换行符.因此,我们使用ASCII的子集对此进行编码
83 71 86 115 98 71 56 115 67 110 100 118 99 109 120 107 73 61 61
Run Code Online (Sandbox Code Playgroud)
以相同数量的信息传输的更多数据为代价,确保接收器能够以预期的方式解码数据,即使接收器恰好对字符集的其余部分有不同的解释.
如果您向Web服务器发出HTTP请求,并返回类型为image/jpeg的响应,那么二进制数据如何实际编码?它是通过线路的图像的原始字节级内容,还是它的一些基于字符的表示(例如base64)?