有没有人可以帮我转到一些关于通信中的编码和解码以及不同的编码技术(unicode,base64,utf7)等方面的参考资料?
发布于 2010-03-15 18:16:49
Wikipedia总是一个好的开始。
然后就是Joel Spolsky's article: The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)了。
请注意,您命名的这三个东西在不同的层次上运行。
发布于 2010-03-15 18:28:38
编码和解码的定义有些主观。
两者都是音译的形式,是从一种字母表转换为另一种字母表的过程。ASCII码到UTF8,ASCII码到base64,等等都是这样的例子。
两者的不同之处在于,在将可用格式音译为某种传输格式或中间格式时,通常会使用“编码”,而解码则相反。这就是“主观”部分的用武之地。根据上下文,可以将ASCII到UTF8视为编码或解码。
像base64这样的其他格式几乎普遍用于传输(例如电子邮件中的二进制数据),因此转换为它们几乎普遍称为“编码”,转换为“解码”。
重要的一点是,像ASCII或UTF8这样的东西在任何情况下都不是神奇的。所有这些格式都只是将信息一致编码成二进制格式。所以ASCII 65是'A‘,这就是标准。
Unicode格式变得更加有趣,因为它们区分了代码点和编码。Unicode定义了每个字符的代码点。对于每种编码格式,二进制数据是不同的。例如,请参见Unicode Character 'EURO-CURRENCY SIGN' (U+20A0)以查看一个代码点的所有不同二进制值。
发布于 2010-03-15 18:28:02
关于你的unicode,base64,utf7 (没人用,可能是utf8)。它们不仅仅是“编码和解码”,而是文本数据的编码和解码。
Unicode是枚举所有真实字符和可能字符的方式。它与编码本身没有任何关系。UTFXX是unicode的编码集(将代码转换为实际的字节)。最受欢迎的是UTF8和UTF16。UTF8基本上是兼容ASCII码的(代码小于128的字符表示方式与ASCII码相同),但其他字符用2-3个字节表示。UTF16将大部分字符编码为2个字节。
Base64对文本数据一无所知。它将通用二进制数据编码为包含64个可打印ascii字符的文本。它通常用于通过电子邮件传输二进制数据、UTF8和UTF16。
https://stackoverflow.com/questions/2446296
复制相似问题