有人可以请我转发一些关于通信编码和解码以及不同编码技术(unicode,base64,utf7)等的好参考资料。
答案 0 :(得分:2)
Wikipedia总是一个好的开始。
请注意,您命名的三件事在不同级别上运作。
答案 1 :(得分:1)
编码和解码的定义有些主观。
两者都是音译的形式,是从一个字母转换为另一个字母的过程。 ASCII到UTF8,ASCII到base64等都是这个例子。
两者的区别在于,当从可用格式音译到某种传输或中间格式时,经常使用“编码”,而解码则相反。这就是“主观”位的来源。根据上下文,ASCII到UTF8可以被视为编码或解码。
其他格式如base64几乎普遍用于传输(例如电子邮件中的二进制数据),因此转换为它们几乎普遍称为“编码”,并从“解码”转换。
远离这一切的重要一点是,像ASCII或UTF8这样的东西在任何方面都不是神奇的。所有这些格式只是商定的信息编码为二进制格式。因此,ASCII 65是'A',除了标准之外别无其他原因。
Unicode格式变得更有趣,因为它们区分了代码点和编码。 Unicode定义每个字符的代码点。每种编码格式的二进制数据是不同的。例如,请参阅Unicode Character 'EURO-CURRENCY SIGN' (U+20A0)以查看一个代码点的所有不同二进制值。
答案 2 :(得分:0)
关于你的unicode,base64,utf7(没有人使用它,它可能是utf8)。它们不仅仅是“编码和解码”,而是编码和解码。解码文本数据。
Unicode是枚举所有真实和可能字符的方式。它没有编码本身。 UTFXX是unicode的编码集(将代码转换为实际字节)。最受欢迎的是UTF8和UTF16。非常基本上UTF8是ASCII兼容的(代码< 128的字符表示与ASCII相同),但其他字符由2-3个字节表示。 UTF16将大多数字符编码为2个字节。
Base64对文本数据一无所知。它将通用二进制数据编码为由64个可打印的ascii字符组成的文本。它通常用于通过电子邮件传输二进制数据,UTF8和UTF16。