- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java Web中文显示乱码问题分析与解决方案
Java Web中文显示乱码问题分析与解决方案 摘 要:作为一个Java Web程序开发人员,在开发过程中,经常会遇到意想不到的中文显示乱码问题,它会出现在程序中传递/接收中文参数或者是与数据库连接/查询等等项目中经常出现的操作过程中,这些乱码问题总是困扰着程序开发人员。本论文首先从操作系统与服务器的字符集/编码方式和JSP文件执行流程中编码的转换两个方面全面分析了产生乱码的根本原因,然后根据不同情况下中文显示乱码原因进行了详细的分析并给出了多种不同的解决方案。 关键词:Java Web;字符集;中文显示乱码 中图分类号:TP311.10 在程序中出现的乱码大致可以分为几种情况,JSP页面中文显示乱码、获取表单提交中文参数时出现乱码、使用I/O流读取文件时数据库连接出现乱码和数据库显示乱码等几种情况。要解决不同情况下产生的中文乱码问题,首先要了解出现中文乱码的原因,然后针对不同情况下产生的乱码问题,就可以有针对性地解决。 1 产生乱码的原因 Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台性,但也带来了一些中文乱码问题的麻烦。乱码主要体现在两个方面,一个是Java和JSP文件本身编译时产生的乱码,在Java或者JSP源文件中很可能包含有中文,如果使用的编码方式与源文件的编码不一致,就会产生乱码,此种情况解决方法比较简单,在本文下面会有说明;另外一个是Java程序与其它程序或软件进行数据交互时产生的乱码问题,如果Java程序与其它程序或软件采用的编码方式不一致,那么在进行数据传递时就会产生乱问题,这种情况是最常见,也是重点要研究的问题。 简单的说,一种字符在保存时的编码格式如果与要显示的编码格式不一致,就会出现乱码问题,在Web系统中,从HTML应用程序编码、Web应用程序编码到底层数据库编码 ,如果有一项不一致,就会出现乱码。 2 Web开发中常用的字符集与字符编码 从上面了解到只要中文字符在保存时与显示时所使用的编码方式不一致,就会出现乱码问题,为了解决这些乱码问题,我们要对Web开发中常用的字符集与字符编码有所了解。 字符集:字符(Character)是文字与符号的总称,包括文字、数学符号、图形符号等。一组抽象字符的集合就是字符集(Charset)。 字符编码:计算机要处理各种字符,就需要将字符和二进制内码对应起来,这种对应关系就是字符编码(Encoding)。下面表1列出了程序中常用的字符集与字符编码。 表1 常用的字符集与字符编码 字符集 含义 ASCII 美国信息交换标准码,是目前计算机中应用最广泛的字符集及其编码,由美国国家标准局制定。 ISO 8859-1 国际标准化组织(ISO)及国际电工委员会联合制定的一系列字符集标准,现在定义了15个字符集。 Unicode 一种在计算机上使用的字符编码,它为语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。 UTF-8 一个字符的Unicode编码是确定的,但是在实际传输过程中,由于不同系统平台的设计不一定一致,以及出于节省空间的目的,对Unicode编码的实现方式有所不同,UTF-8即为一种,是一种针对Unicode的可变长度字符编码。 GB2312 汉字编码。收录常用简体汉字、希腊字母、日文平假名及片假名字母、俄语西里尔字母等字符,未收录繁体中文汉字和一些生僻字。 GBK 简繁字集。是GB2312编码的超集,向下完全兼容GB2312,同时还包括GB字集 、BIG5字集和一些符号。 GB18030 是国家制定的一个强制性大字集标准,它的推出使汉字集有了一个“大一统”的标准。 3 产生乱码的原因分析与解决 3.1 JSP页面内容乱码。在项目开发中,有时会遇到在MyEclipse中创建JSP文件后,提示不能保存。此类问题的原因在于每种开发工具在创建JSP文件时,都会有一个默认的页面编码方式,如果在JSP页面中有一些文字或符号不能用这种默认的编码方式显示,就会出现不能保存的问题,此时将JSP页面的编码方式修改一下即可。方法是在页面中修改或添加如下的page指令,,设置页面的编码方式即可。 3.2 传递参数乱码。在开发中经常会遇到程序间进行参数传递的情况,有时从JSP页面向Java程序传参数、有时从Java程序向JSP页面传参数、有时需要在地址栏中传递参数,令人烦恼的是传递后得到的参数竟然是乱码的,此类参数传递乱码问题的解决方法大致有以下两种。 (1)在所使用的服务器配置文件中修改。如果开发的项目在进行参数传递时,始终都是采用同一种编码方式进行传递,那么可以在Web服务器中进行统一修改。每一种服务器都
文档评论(0)