为什么 用gb2312写入英文字符“abcdef”用utf-8能够正确读出来?写入中文就读不出来了。原理是什么? 讲一下吧。真的很混乱。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 因为 Unicode 范围在 U+0000~U+007F 的字符 GBK 与 UTF-8 编码是完全一样的,都采用一个字节来表示。而汉字的 Unicode 范围基本上位于 U+4E00~U+9FFF 段中,这个段中的 UTF-8 采用三个字节来表示。而对于 GBK 来说,汉字是采用两个字节来表示的。拿“中”来说,GBK 存入时占用两个字节,即 D6 D0,而 UTF-8 使用 E4 B8 AD 三个字节来表示。 字符编码,就是把字符用二进制来标识。凑巧的是,对于英文字符来讲,GB2312和UTF-8,每个字母字符对应的编码是相同的。所以,对于英文字母字符来讲,GB2312和UTF-8和ACSII编码,用哪个进行编码或解码,其结果都是一样的。但是,对于中文汉字字符,就会有显著差别了。ACSII编码,不包含汉字,所以,不能对汉字进行编码。GB2312和UTF-8楼上已经解释的很清楚了。 这个好像和我的帖子有点关系,http://topic.csdn.net/u/20081025/15/e3c6d4fb-bdb1-4473-9353-d2aab3d033cc.html 用gb2312写入英文字符“abcdef”用utf-8能够正确读出来?写入中文就读不出来了。原理是什么? 首先对于英文字符来讲,GB2312和UTF-8,每个字母字符对应的编码是相同。而对于中文处理。utf-8处理中文是有限的,因为它只能解码很少一部分中文,很多常用的中文字符它都没有,而gb2312和gbk是我们国家推出的,支持汉字很丰富。所以,对于楼主的问题。解决方案:用gb2312写数据,就用gb2312读数据就可以了。把utf-8改为gb2312就OK啦! 编码不一样,GBK是2个字节一个汉字,UTF-8是三个字节所以,同样的6个字节,你说是2个汉字还是3个汉字? 写了两个XML文件,都存储为UTF-8形式,但IE打开都报错.<?xml version="1.0" encoding="ASCII" ?><book>a book</book><?xml version="1.0" encoding="GB2312" ?><book>a book</book>既然英文字符的编码在ASCII,UTF-8,GB2312中都是一样的,那么为什么会报错呢? 关于Swing的一个问题 请教一个集合的设计,用来存储一堆书籍对象,实现针对书名快速查询 回答满意送分100分~ 问:宁波程序员,php,java(Struts+hibernate)工资大概多少?几千为正常? 如何判断磁盘是哪种类型? 谁会这个简单编程啊?功能不必一定要完全实现 找大连理工学生 [初学请教]我该怎样开始学java?? VisualAge跟jbuilder,谁好? 在JAVA下如何实现用户输入数据,像C的SCANF一样,给个例子吧 求教 如何用java实现下列四种图形? WebService的发布
凑巧的是,对于英文字符来讲,GB2312和UTF-8,每个字母字符对应的编码是相同的。
所以,对于英文字母字符来讲,GB2312和UTF-8和ACSII编码,用哪个进行编码或解码,其结果都是一样的。但是,对于中文汉字字符,就会有显著差别了。
ACSII编码,不包含汉字,所以,不能对汉字进行编码。
GB2312和UTF-8楼上已经解释的很清楚了。
。
而对于中文处理。utf-8处理中文是有限的,因为它只能解码很少一部分中文,
很多常用的中文字符它都没有,而gb2312和gbk是我们国家推出的,支持汉字很丰富。所以,对于楼主的问题。
解决方案:
用gb2312写数据,就用gb2312读数据就可以了。
把utf-8改为gb2312就OK啦!
<book>a book</book><?xml version="1.0" encoding="GB2312" ?>
<book>a book</book>
既然英文字符的编码在ASCII,UTF-8,GB2312中都是一样的,那么为什么会报错呢?