Java程序中乱码的由来及解决方法

来源 :电脑学习 | 被引量 : 0次 | 上传用户:lixufengz
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:从编码出发,分析了在Java中可能会产生编码问题的两个环节,并对不同情况给出了有效的解决方法。 
  关键词:Java 汉字 编码 字符集
  
  在Java语言的应用中,对字符的支持并非如同Java Soft的标准规范中所宣称的那样完美,尤其是中文字符集,所以在开发过程涉及到对汉字的处理时经常会出现乱码,给开发人员带来诸多不便。
  
  1 常见的字符编码
  
  计算机中存储、处理和传送的数据是二进制的形式。各种文字、符号也必须用二进制数编码来表示,因此出现了一些不同形式的字符编码。
  (1)IS08859-1码
  IS08859-1码属于单字节编码,最多能表示的字符范围是0-255,应用于英文系列。由于是单字节编码,和计算机内表示单位一致,所以很多时候,仍旧使用IS08859-1编码来表示。而且在很多协议上,默认使用该编码。
  (2)GB2312编码
  GB2312编码是中华人民共和国国家标准汉字信息交换用编码,是由国家标准总局发布的关于简化汉字的编码,通行于中国大陆地区及新加坡,简称国标码。两个字节中,第一个字节(高字节)的值为区号值加32(20H),第二个字符(低字节)的值为位号值32(20H),用这两个值来表示一个汉字的编码。该字符集是一般中文操作系统默认的字符集。
  (3)GBK编码
  GBK编码是GB2312的扩展,是向上兼容的。它的编码范围是0x8140至0xfefe,其所有字符都可以一一映射至U-nicode2.0,实际上Java提供了对GBK字符集的支持。
  (4)Unicode编码
  Unicode编码是微软提出的解决多国字符问题的多字节等长16位编码,它对英文字符采取前面加“O”字节的策略实现等长兼容。如“A”字符的ASCII码为0x41,Unicode码为0x00,0x41。所以如果将高位字节去除,可以近似地将Uni-code转换为IS08859-1,它是Java内码的编码方式。
  2 Java程序运行中出现的“?”和一些乱码的由来
  (1)将字符的Unicode码转换成本地字符集码
  下面的程序在将Unicode字符集转换成“IS08859-1”字符集时出现了“?”号。
  程序1:
  从程序中看出,存有“辽工大”三个字符的GB2312码的字节数组,使用IS08859-1解码后的Unicode字符串的字符并不是原来的三个字符的Unicode码,而是被解码成了六个字符,每个字符的低字节的内容都是原来字节数组中的数据,而高字节都是0。程序中打印的b4所对应的字符在内容中实际上是两个字节00b4。因此在解码时出现了一些除“?”以外的乱码。
  
  3 解决的方法
  
  对于程序1,由于当前系统默认的编码方式是GB2312码,将程序中的语句:  
  
  4 结束语
  
  对于前面提到的字符编码的转换不仅存在于Java应用中,也存在于JSP和Servlet的应用中,有时还会出现这两个过程的叠加。甚至是两个过程的反复叠加,因此Java应用中会产生一些与平台相关的问题,在程序的开发过程一定要引起注意。
其他文献
[内容摘要] 传世法书《兰亭序》有诸多临摹本。本文以无锡博物院收藏的传为元代书画家赵孟頫临写的《兰亭序》为研究对象,详细考辨了作品的跋文和印章,认为该作品极可能出自俞和之手,同时也指出了某些跋文所存在的问题。  [关键词] 赵孟頫?兰亭序?俞和?流传过程  一、关于锡博本《兰亭序》  1984年12月6日,苏南无锡籍书画家兼收藏家周怀民(1907—1996)将自己毕生收藏的123件古代书画、近现代
2014年2月17日,“黄永玉先生作品捐赠仪式”在中国国家博物馆白玉厅隆重举行。黄永玉先生将其精心创作的巨幅代表作《春江花月夜》和20世纪50年代为中国国家博物馆创作的《各族人民大团结》壁画的小稿捐赠给中国国家博物馆。  黄永玉先生、夫人张梅溪女士,中国国家博物馆馆长吕章申,李可染艺术基金会理事长邹佩珠、中国美协顾问詹建俊、中国美协党组书记、常务副主席吴长江、人民美术出版社社长汪家明、北京画院学术
中国美术家协会第八次全国代表大会于2013年11月25日至27日在北京隆重召开。中共中央政治局委员、中央书记处书记、中宣部部长刘奇葆出席开幕式并作重要讲话,他号召全国美术家“坚持以人民为中心的创作导向,为人民泼墨挥毫,为时代描绘画卷,多出精品、多出人才,谱写我国美术事业新篇章”。中国文联党组书记、副主席赵实,中宣部副部长黄坤明,中国文联党组副书记、副主席覃志刚、李屹,中国文联党组成员、副主席左中一
2014年1月22日上午,江山万里——张大千艺术展在中国美术馆举行了开幕和媒体见面会,展览仅在1月20和21日预展的两天时间里就吸引了6000余观众参观。此次展览缘起于中国美术馆与台湾长流美术馆的携手与合作,体现了两岸文化艺术交流越来越多样化的特点。此次展览持续到2014年3月3日。  此次“江山万里——张大展艺术展”是中国美术馆2014年春节系列展览的重要项目之一,共展出张大千不同時期的山水、花
摘要:阐述了节点开发设计的过程。在硬件设计部分重点说明了神经元芯片如何扩展外部存储器,在软件设计部分主要论述了节点的接口文件和应用程序的定义。  关键词:NodeBuilder Lonworks 智能节点 开发设计  中图分类号:TP393 文献标识码:B 文章编号:1002-2422(2008)01-0008-02    1 智能节点的硬件设计    采用神经芯片3150为主处理器,外加收
Step 1 (for Section A)     Ⅰ. 选择填空。  ()1. Bill ______ apples, but he doesn’t ______ bananas.  A. like; likeB. like; likes C. likes; likeD. likes; likes  ()2. My brother likes ______ very much.  A. pla
摘要: Excel应用广泛,具有存储、计算和统计分析数据等功能,常用于管理和分析数据信息,是非常优秀的电子表格软件。而且Excel设有一个“遥控器”——VBA,利用VBA可以大大简化操作,进而提高效率,更能发挥Excel的强大功能。本文先介绍并比较几种在Excel中实现玉米数量性状统计的方法,然后再提出用VBA进行高效统计的实现方法。此方法稍加修改还可以用于人口结构统计、职工工龄统计、教师教龄统计
[编者按]  2010年《书法有法》推出后,得到读者尤其是书法爱好者的热烈追捧。2010年,8月北京三联书店预热活动、9月北京国际图书博览会新书发布、10月南京凤凰国际书城主题讲座、2011年4月首届江苏书展主题讲座签售、7月香港书展主题演讲等一系列活动,江苏美术出版社联合书法家孙晓云女士掀起一波又一波“书法有法”的热潮……  书法家孙晓云女士的书论著作《书法有法》推出已有10年仍畅销不已,数次重
摘要:设计的汇编语言子程序库可以被汇编程序或C 程序调用。实现不同数制的键盘输入和控制台显示。  关键词:汇编语言 I/O 子程序 库  中图分类号:TP313 文献标识码:B 文章编号:1002-2422(2008)03-0086-02    设计的I/O子程序库包括16位版本和32位版本,可分别应用于16位和32位汇编语言应用程序,提供的子程序功能包括不同数制和字符串的输入与显示,状态
[编者按]  “长安画派”,20世纪中国美术史上一个蜚声中外的画家群体。赵望云、石鲁、何海霞等一批中坚人物将一个地域特色鲜明的画派推向了全国,其作品和理论在美术发展史上熠熠生辉。在长安画派影响下,陕西当代美术家和创作迭出,人物、山水、花鸟等画科齐头并进,生机勃勃。《中国美术》持续关注地域绘画流派,以长安画派的形成与发展、画派代表人物创作和思想为中心,组成“一手伸向传统,一手伸向生活——长安画派专题