中文乱码问题分析(Java)

中文乱码问题分析(Java)

ID:43790270

大小:154.68 KB

页数:8页

时间:2019-10-14

中文乱码问题分析(Java)_第1页
中文乱码问题分析(Java)_第2页
中文乱码问题分析(Java)_第3页
中文乱码问题分析(Java)_第4页
中文乱码问题分析(Java)_第5页
资源描述:

《中文乱码问题分析(Java)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、第一章基础知识1.1介绍1.1.1iso8859-l属于单字节编码,最多能表示的字符范围是0-255,应用于英文系列。比如,字母a的编码为0x61=97oISO8859-1,即俗称的latin-1,西欧字母。其中前半段是ASCTT码。很明显,iso8859-l编码表示的字符范围很窄,无法表示屮文字符。但是,由于是单字节编码,和计算机最基础的表示单位一致,所以很多时候,仍旧使用iso8859-l编码来表示。而且在很多协议上,默认使用该编码。比如,虽然“中丈'两个字不存在iso8859-l编码,以gb2312编码为例,应该是”<16d0ce

2、c4“两个字符,使用iso8859-l编码的时候则将它拆开为4个字节來表示:“d6d0cec4“(事实上,在进行存储的时候,也是以字节为单位处理的)。而如果是UTF编码,则是6个字节*'e4b8ade69687%很明显,这种表示方法还需要以另一种编码为基础。1.1.2GB系列GB系列这就是汉了的国标码,专门用來表示汉字,是双字节编码,而英文字母和iso8859-l一致(兼容iso8859-l编码)。其中gbk编码能够用来同时表示繁体字和简体字,而gb2312只能表示简体字,gbk是兼容gb2312编码的。GB2312-80是在国内计算机

3、汉字信息技术发展初始阶段制定的,其中包含了大部分常用的一、二级汉字,和9区的符号。该字符集是几乎所有的中文系统和国际化的软件都支持的中文字符集,这也是最基本的小文字符集。其编码范围是高位Oxal-Oxfe,低位也是Oxal-Oxfe;汉字从OxbOal开始,结束于0xf7fe;GBK是GB2312-80的扩展,是向上兼容的。它包含了20902个汉字,其编码范围是0x8140-0xfefe,剔除高位0x80的字位。其所有字符都可以一对一映射到Unicode2.0,也就是说JAVA实际上提供了GBK字符集的支持。这是现阶段Windows和其

4、它一些中文操作系统的缺省字符集,但并不是所有的国际化软件都支持该字符集,感觉是他们并不完全知道GBK是怎么回事。值得注意的是它不是国家标准,而只是规范。随着GB18030-2000国标的发布,它将在不久的将来完成它的历史使命。GB18030-2000(GBK2K)在GBK的基础上进一步扩展了汉字,增加了藏、蒙等少数民族的字形。GBK2K从根本上解决了字位不够,字形不足的问题。它有儿个特点:1、它并没有确定所有的字形,只是规定了编码范围,留待以后扩充。2、编码是变长的,其二字节部分与GBK兼容;四字节部分是扩充的字形、字位,其编码范围是首

5、字节0x81-0xfe>二字节0x30-0x39、三字节0x81-0xfe>四字节0x30-0x39。3、它的推广是分阶段的,首先要求实现的是能够完全映射到Unicode3.0标准的所有字形。4、它是国家标准,是强制性的。5、现在还没有任何一个操作系统或软件实现了GBK2K的支持,这是现阶段和将來汉化的工作内容1.1.1unicode这是最统一的编码,可以用来表示所有语言的字符,而且是定长双字节(也有四字节的)编码,包括英文字母在内。所以町以说它是不兼容iso8859-l编码的,也不兼容任何编码。不过,相对于iso8859-1编码来说,

6、uniocode编码只是在前面增加了一个0字节,比如字母a为“0061"。需要说明的是,定长编码便于计算机处理(注意GB2312/GBK不是定长编码),而unicode又可以用来表示所有字符,所以在很多软件内部是使用unicode编码来处理的,比如javaoISO10646,即通用字符集(UniversalCharacterSet,UCS),四个字节编码UCS标准(ISO10646)描述了一个31位字符集的体系,不过,目前只使用了前面65534个编码位置(OxOOOO-Oxfffd,它们被称为基本多语言块(BasicMultilingu

7、alPlane,BMP)),分配给了字符,而且我们估计只有那些很古怪的字符(比如.Hieroglyphics)为了专门的科学冃的,才会在将來的某个时候,需要16位的BMPZ外的部分.Unicode编码头256个字符和IS08559-1一样。前曲补上空字节。UniHAN主要分布在U+3400到U+9FFFZ间,此外,U+F900到U+FAFFZ间也有一些。事实上,GB2312和BIG5的字符都分布在U+4E00和U+9FFF之间。Unicode中中文:4e00-9fa51.1.2UTF考虑到unicode编码不兼容iso8859-l编码,

8、而且容易占用更多的空间:因为对于英文字母,unicode也需要两个字节来表示。所以unicode不便于传输和存储。因此而产生了utf编码,utf编码兼容iso8859-1编码,同时也可以用来表示所有语言的字

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。