当需要编码二进制数据时,通常使用 Base64编码模式,这些二进制数据需要通过设计用于处理文本数据的媒体进行存储和传输。这是为了确保数据在传输过程中保持完整,无需修改。
但是,数据总是以二进制形式存储/传输,这难道不是因为我们的机器存储的内存是二进制的,而这仅仅取决于你如何解释它吗?因此,无论您将位模式 010011010110000101101110
编码为 ASCII 中的 Man
还是 Base64中的 TWFu
,最终都将存储相同的位模式。
如果最终的编码是0和1,每台机器和媒体都可以处理它们,那么数据表示为 ASCII 或 Base64又有什么关系呢?
“处理文本数据的媒体”是什么意思?它们可以处理二进制 = > 它们可以处理任何东西。
谢谢大家,我想我现在明白了。
当我们发送数据时,我们不能确定数据是否会按照预期的格式进行解释。因此,我们以双方都能理解的格式(如 Base64)发送编码的数据。这样,即使发送方和接收方解释相同的东西不同,但因为他们在编码格式上达成一致,数据不会得到错误的解释。
来自 马克拜尔斯的例子
如果我想发送
Hello
world!
一种方法是像
72 101 108 108 111 10 119 111 114 108 100 33
但是,字节10可能不会被正确地解释为另一端的换行符。因此,我们使用 ASCII 的一个子集来像这样编码它
83 71 86 115 98 71 56 115 67 110 100 118 99 109 120 107 73 61 61
这样,即使接收方碰巧对字符集的其余部分有不同的解释,也可以以同样数量的信息传输更多的数据为代价,确保接收方能够以预期的方式解码数据。