维基百科 表示:
在需要对二进制数据进行编码以存储和传输到设计用于处理文本数据的介质时,通常会使用Base64编码方案。这是为了确保在传输过程中数据不会被修改,仍旧能够保持完整性。
但是,数据不是一直以二进制形式存储/传输吗?因为我们机器的内存存储的就是二进制形式,只是取决于你如何解释它。所以,无论你将位模式010011010110000101101110
编码为ASCII中的Man
还是Base64中的TWFu
,最终都将存储相同的位模式。
如果最终转换为0和1来编码,并且每个机器和媒体都可以处理它们,那么数据用ASCII或Base64表示有何区别?
“设计用于处理文本数据的介质”是什么意思?它们可以处理二进制=>他们可以处理任何东西。
谢谢大家,我现在明白了。
当我们发送数据时,不能确定数据将以我们预期的格式进行解释。因此,我们发送以某种格式(例如Base64)编码的数据,以便双方都能理解。这样即使发送方和接收方以不同方式解释相同的内容,但因为他们同意使用编码格式,所以数据将不会被错误地解释。
如果我想要发送
Hello
world!
有一种方法是以ASCII方式发送它,如下所示:
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
这样做会增加传输的数据量,但能确保接收方能按预期方式解码数据,即使接收方对其余字符集有不同的解释。