当需要对二进制数据进行编码时,通常需要使用Base64编码方案,该二进制数据需要在旨在处理文本数据的媒体上存储和传输。这是为了确保数据在传输过程中保持完整而无需修改。
但是,不是因为我们的机器存储的内存始终以二进制形式存储/传输数据,而是仅以二进制形式存储/传输数据吗?因此,无论您编码位模式010011010110000101101110为ManASCII或如TWFu为Base64,你最终将存储相同的位模式。
如果最终编码是用零和一表示的,并且每台机器和媒体都可以处理它们,那么将数据表示为ASCII还是Base64有什么关系呢?
“旨在处理文本数据的媒体”是什么意思?他们可以处理二进制=>他们可以处理任何东西。
谢谢大家,我想我现在明白了。
当我们发送数据时,我们不能确定数据将以我们期望的格式解释。因此,我们发送双方都可以理解的以某种格式(例如Base64)编码的数据。这样,即使发送方和接收方对相同内容的解释不同,但由于它们在编码格式上达成共识,因此不会错误地解释数据。
以Mark Byers为例
如果我要发送
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
即使接收器碰巧对其余字符集有不同的解释,这也会以相同信息量传输更多数据为代价,从而确保接收器可以按预期方式解码数据。
慕村9548890
长风秋雁