一个如此有经验的老程序员 对这种基本问题都不甚清楚, 因此我觉得还是有必要好好说一下这个问题的.
字符集
在介绍他们之间的区别时, 我们先讲下什么是Unicode....-16,gb2312,gbk等,具体的编码规则不在本文的范围内,想要深入了解的可以在网上查阅相关的文档....如果用utf8编码后错误地用gbk来解码, 就会得到3个unicode码点,分别表示字符浣,犲和ソ;而如果用gbk编码后 错误地用utf8来解码, 则在解码第二个字符时无法凑够3个字节, 因此会得到未知的结果...知道字符编解码的用法之后,我们就可以解释一下常见的一些乱码由来了, 比如在Windows下,未初始化的栈会初始化为0xcc, 未初始化的堆内存会初始化为0xcd, 可以看到前者为’烫’的gbk编码,而后者正好为..., 我想你应该知道该怎么回答了吧: Unicode是 一种字符集, 而GBK和UTF-8都是编码, 因此Unicode和后两者不是一类事物, 是无法进行对比的.