什么是编码&通信解码?

时间:2010-03-15 10:14:05

标签: encoding character-encoding

有人可以请我转发一些关于通信编码和解码以及不同编码技术(unicode,base64,utf7)等的好参考资料。

3 个答案:

答案 0 :(得分:2)

Wikipedia总是一个好的开始。

然后总是Joel Spolsky's article: The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)

请注意,您命名的三件事在不同级别上运作。

  • Unicode是一个字符集:字符和数字之间的映射(代码点)。
  • UTF7在代码点和字节之间进行映射。
  • base64在字节和字节之间映射。 (它会破坏字节,以便它们在ASCII范围内用字节表示。)

答案 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。