jsp中文编码乱码分析与解决.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
jsp中文编码乱码分析与解决

jsp中文编码乱码分析与解决   摘 要 jsp技术目前普遍应用于网络编程,java在中文处理方面经常出现乱码现象。本文从分析各种常见的jsp页面中文乱码产生的原因入手,并给出该乱码的解决方案。经过多次实践,基本可以解决常见jsp页面常见的中文乱码问题,有着很好的广泛性。   关键词 网络编程;中文乱码;jsp页面编码   中图分类号TP39 文献标识码A 文章编号 1674-6708(2011)57-0183-02   0引言   JSP(Java Server Pages)是由Sun公司倡导、许多公司参与一起建立的一种动态网页技术标准,jsp技术采用java作为开发脚本语言,java本身有着很好的跨平台性,但是jsp在结合页面技术后,最使人头疼的一个问题就是不能很好的处理中文乱码问题,在开发过程中带来诸多不便,本文从剖析中文乱码产生的各种原因入手,并给出相应的解决方案。   1中文乱码的根源   1)中文的编码很多,在不同的情况下可能有多种不同的二进制值;   2)在某些应用中传递数据时,可能把中文转换成其它形式;   3)在一个应用系统中,编码之间存在各种各样的转换;   4)在转换过程中需要制定编码方式;   5)在具体实践过程中,可能忽略或忘记设置编码;   6)不同的软件环境其编码设置方式不同也容易导致中文乱码;   7)编码工具的多样性以及对编码的模糊认识不清。   2常见的jsp页面中文乱码   网上常出现的 JSP/Servlet encoding 问题一般都表现在 browser 或应用程序端,如:   浏览器中看到的 Jsp/Servlet 页面中的汉字怎么都成了‘?’;浏览器中看到的 Servlet 页面中的汉字怎么都成了乱码;JAVA 应用程序界面中的汉字怎么都成了方块;Jsp/Servlet 页面无法显示 GBK 汉字;Jsp/Servlet 不能接收 form 提交的汉字;JSP/Servlet 数据库读写无法获得正确的内容。   3 中文乱码产生原因分析   1)在jsp中如果指定了,那么在该jsp中所有用到的数据,如果?]有指定编码,那么这些数据的编码方式为A。   从request得到的数据如果没有指定request的编码的话,默认编码为iso-8859-1。   假设从别的地方得到的数据是使用原来初始的编码的,比如从数据库得到数据,如果数据库的编码是B,那么该数据的编码是B而不是A,也不是系统默认的,此时,如果要输出的数据的编码不是A,那么,很可能显示乱码,所以首先要将数据正确转化为编码A,然后再输出;   2)在jsp中如果没有指定,那么默认的A编码为iso-8859-1;   3)Servlet中如果执行了像 response.setContentType(text/html;charset=A),说明将response的字符输出流编码设置为A,所有要输出的数据的编码要转化为A,否?t就会出现乱码。Servlet中从request得到的数据的编码和jsp中一样的,但是在servlet java文件中构造的数据是使用是系统默认的编码(iso-8859-1);servlet中从外部得到的数据使用的是原来的编码,比如从编码为B的数据库得到的数据是编码为B,不是A,也不是系统默认的编码。   4中文乱码解决方案   4.1 JSP页面显示为乱码   如果只在页面中加入,该处指定的编码仅为浏览器对字符的显示处理,但是服务器的编码方式和浏览器的编码方式对字符的单独处理,所以还要在页面的第一行加上:   ,就可以消除乱码了。   4.2 Servlet接收Form/Request传递的参数时显示为乱码   方法1:在使用request获取参数前,加上此语句:request.setCharacterEncoding(A), 此处设置的编码要和传递参数的页面采用的编码方式一致。   方法2:使用过滤器(filter),在doFilter方法中做如下处理:   package com.knorray.filters;   public class CharEncodingFilter implements Filter{   protected String encoding = null;   public void init(FilterConfig filterConfig) throws ServletException {   this.encoding = filterConfig.getInitParameter(encoding);   }   public void doFilter(ServletRequest

文档评论(0)

317960162 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档