- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java编码中文问题研究及解决方案
Java编码中文问题研究及解决方案
计算机系统应用200.5年第11期
Java编码中文问题研究及解决方案
ResearchandResolutiononChineseProblemBasedonJava
冯金辉朱淼良(杭州浙江大学计算机科学与技术学院310027)
摘要:本文首先研究了中文问题产生的根源,然后详细分析了各种编码方式及产生中文问题的原因.接着介绍了
系统的各个层次可能产生问题的表现以及原因.最后提出了解决中文问题的原则以及具体的解决方案.
关键词:编码解码ISO8859UnicodeUTF一8
1引言
现在Java编程语言已经广泛应用于互联网世界,
早在Sun公司开发Java语言的时候,就已经考虑到对
非英文字符的支持了.Sun公司公布的Java运行环
境(JRE)本身就分英文版和国际版,其中国际版支持非
英文字符.然而,因为中文字符集不只一个,而且不同
的操作系统对中文字符的支持也不尽相同,所以会有
许多和汉字编码处理有关的问题在我们进行应用开发
中困扰着我们.有很多关于这些问题的解答,但是很
多都只是针对某种特定开发环境或者特定情况的解决
方法,在实际的应用过程中,需要使用者去一一尝试,
才能够得到正确的解决方案,这就大大降低了使用这
些解决方法的效率.本文将从汉字编码常识出发,分
析Java中文问题,并提出解决问题的原则,使读者能
够明白具体情况下应该如何处理,然后提出一系列的
具体解决方案,希望对大家解决这个问题有所帮助.
2Java的编码方式
Java中的字符数据是16位无符号型数据,它表示
Unicode集,而不仅仅是ASCII集.它解决了WWW上
很多的程序设计问题,比如说低成本的国际化(Inter—
nationa1),然而Java所处理的信息,绝大多数都是英
文,对它们来说7位的ACSII码已经足够了,而Unicode
却需要双倍的空间,所以Java的这种兼顾各种语言的
做法既浪费了存储资源又降低了效率.而Java编程
中中文问题的出现,归根结底是由于在Java的各个不
同的编码方式之间进行字符转换的时候出错.因此,
了解Java使用的各种编码方式,有助于我们解决Java
78实践经验Prac6calExperience
中文问题.在Java中常用的编码方式有1508859—1,
Unicode,GB2312,GBK,UTF一8.
(1).ISO8859—1
ASCII编码方式是单字节内码,它使用了单字节8
位中的后7位,而第一位都为O.为了应付越来越多的
字符需要,如拉丁字母等,于是在AsCII的基础上扩展
了1508859—1编码.1508859—1同样是单字节内码,
当ISO8859—1编码的字节首位为O时,字符可以一一
映射到ASCII编码字符集.而当ISO8859—1编码的字
节首位为1时,则可以增加128个字符.
(2).Unicode
Unicode最初是双字节内码.它的出现是为了让
每一个字符有唯一的表示形式.Unicode编码是
ISO8859—1的扩展.当Unicode编码的高位字节为O
时,低位字节等同于ISO8859—1编码.这
时候,去除Unicode编码的高位字节,其编码就转化为
ISO8859—1编码.这种方式适用于基于ISO8859—1
编码方式的西欧语系环境.
(3).GB2312
GB2312—80是双字节内码,它是在国内计算机汉
字信息技术发展初始阶段制定的,其中包含了大部分
常用的一,二级汉字,和9区的符号.该字符集是几乎
所有的中文系统和国际化的软件都支持的中文字符
集,这也是最基本的中文字符集.其编码范围是高位
0xal一0xfe,低位也是0xal一0xfe;汉字从0xb0al开
始,结束于Oxf7fe.
(4).GBK
GBK也是双字节内码,是GB2312—80的扩展,是
2005年第11期计算机系统应用
向上兼容的.它包含了20902个汉字,其编码范围是
0x8140一Oxfefe,剔除高位0x80的字位.其所有字符
都可以一对一映射到Unicode2.0,也就是说JAVA实
际上提供了对GBK字符集的支持.这是现阶段Win—
dows和其它一些中文操作系统的缺省字符集.
(5).GB18030—2000(GBK2K)
GB1lt;2K是变长内码,它在GBK的基础上进一步扩
展了汉字,增加了藏,蒙等少数民族的字形.GBK2K从
根本上解决了字位不够,字形不足的问题.它也是未
来的中文国家标准.
(6).UTF一8
UTF一8是变长内码,它提供了一种简便而向后兼
容的方法.它的出现是为了提高效率.当操作的文本
基本都是规则的ASCII编码时,使用双字节的Unicode
编码显得效率很低.因此Java字节码内的字符串使
用了UTF
您可能关注的文档
- 从族谱看清代闽南赴台移民家庭——以《南靖书洋书山派萧氏族谱》为蓝本分析.doc
- 关于无形资产的特征、基本概念及范围.doc
- 动态热湿气候风洞实验台的研制.doc
- 吸烟对多环芳烃接触者生物膜损伤指标,染色体畸变和P21蛋 ….doc
- 压缩空气系统调试方案10解读.doc
- 优秀班主任先进事迹汇报材料2【精选资料】.doc
- 产品代言人侵权责任研究-民法论文.doc
- 含氮化合物在地下水中的转化与积累研究.doc
- 会计审计论文-试论网络会计与网络财务.doc
- 从难浸的硫化物精矿中回收金和银的电解或氧化浸出预处理.doc
- 2024高考物理一轮复习规范演练7共点力的平衡含解析新人教版.doc
- 高中语文第5课苏轼词两首学案3新人教版必修4.doc
- 2024_2025学年高中英语课时分层作业9Unit3LifeinthefutureSectionⅢⅣ含解析新人教版必修5.doc
- 2024_2025学年新教材高中英语模块素养检测含解析译林版必修第一册.doc
- 2024_2025学年新教材高中英语单元综合检测5含解析外研版选择性必修第一册.doc
- 2024高考政治一轮复习第1单元生活与消费第三课多彩的消费练习含解析新人教版必修1.doc
- 2024_2025学年新教材高中英语WELCOMEUNITSectionⅡReadingandThi.doc
- 2024_2025学年高中历史专题九当今世界政治格局的多极化趋势测评含解析人民版必修1.docx
- 2024高考生物一轮复习第9单元生物与环境第29讲生态系统的结构和功能教案.docx
- 2024_2025学年新教材高中英语UNIT5LANGUAGESAROUNDTHEWORLDSect.doc
文档评论(0)