黑马程序员技术交流社区
标题:
为什么能识别汉字的编码解码出错,不能识别汉字就没问题
[打印本页]
作者:
常文艺
时间:
2011-11-26 21:45
标题:
为什么能识别汉字的编码解码出错,不能识别汉字就没问题
先GBK编 UTF-8解 UTF-8编 GBK解 出错 换个ISO那个 就不出错 视频里没听明白。
作者:
刘一扬
时间:
2011-11-27 00:29
GBK 编码后占两字接, ISO 1字节 U8不定字节 1-3.
GBK编完后 ISO解, 因为ISO占1字节 ,GBK编完后用ISO解肯定能解出来,而且正确,但解出来的字符是欧洲的字符,因为我们的操作系统默认编码集是GBK,只是别中文和英文,欧洲文字显示不了,所以在控制台上我们看到一堆问号,因为解码是正确的 ,所以在用ISO编码肯定没问题,编出来后用GBK再解一次出正确结果。
U8不一样,因为他可以占用1-3个字节,所以他有一套编码规则,什么3个字节最开头1110 第二个110 第三个10 貌似是,具体我也忘了,而我们用GBK编码后基本不会符合U8的编码规则,因为不符合U8的编码规则,所以U8会去它的未知字符区域去查,所有的未知字符都被编码为某个字符 这个字符编码是-17、-65、-67,这样一来,原始的编码也就破坏了,所以U8解不出来。根本的原因是U8编码有硬性的规定,不符合规定他就会给你乱解。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2