JSP中文乱码问题完全处理方案.docxVIP

  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文档。上传文档
查看更多
PAGE PAGE 1 JSP中文乱码问题完全处理方案_文档视界 JSP中文乱码问题完全解决方案 在JSP开发过程中会遇到各种中文乱码问题,对乱码的处理方法也有所不同!究其原因.大部分是因为编码默认采用ISO-8859-1或者是编码不一致导致的,悲剧的是默认的ISO-8859-1编码不支持中文!(唉,中国...感慨一下,不解释)所幸,UTF-8,GBK,GB2312都是支持中文的! (造成这种问题的根本原因是Java中采用的默认编码方式为Unicode,而中文的编码方式一般情况下为GB2312,因为编码格式的不同,从而导致中文不能正常显示。对于中文乱码问题,在不同的JDK版本和不同的应用服务器中的处理方法是不同的。但是其本质上都是一样的,就是把中文字符转化成合适的编码方式,或者是在显示中文的环境中声明采用GB2312的编码。统一编码方案之后自然可以正常显示。) 一. JSP页面中文乱码 (包括HTML中的中文乱码及在JSP中动态输出的中文乱码) 这种乱码最常见也最好解决 解决方法: 在page指令中添加页面内容和显示方式的设置,如下两种都可以: 有人会问pageEncoding和ContentType有什么区别,简单说 contentType指定的是JSP页最终 Browser(客户端)所见到的网页内容的编码 pageEncoding指定JSP编写时所用的编码 (注意先检查源文件jsp中中文是否正常显示,再做判断) 如果是浏览器端显示乱码,设置ContentType里的charset; 如果是JSP页面不能正常保存,设置pageEncoding即可 二. URL传递中文参数乱码 URL传递中文参数乱码比较特殊,仅仅转换这个中文字符串的编码或者设置JSP页面显示编码都不能解决这个问题!必须对服务器的配置文件进行修改,这里针对Tomcat的配置文件进行修改,具体如下: 打开tomcat的conf目录下的server.xml配置文件,找到 在port=8080后面添加URL编码设置URIEncoding=gb2312 重启服务器即可. 三. 表单提交中文乱码 表单中输入的中文数据在用request取出以后全部变成了乱码,造成这个问题的原因是: 在Tomcat中,对于以POST方法提交的表单采用的默认编码为ISO-8859-1,而这种编码格式不支持中文字符。对于这个问题可以采用转换编码格式的方法来解决。例如:new String(userName.getBytes(ISO-8859-1,gb2312),这种转码方式要求原来的userName编码格式为ISO-8859-1,否则无效。 对于表单中提交的中文数据乱码可以用转码方式解决(适合单一表单),也可以用过滤器filter解决(适合多表单), 个人推荐用过滤器,一了百了,当然采取哪种方法由你来决定! 过滤器的基本原理就是对于每一个用户请求,都必须经过过滤器的处理才能继续发送到目的页面中。在JSP中,以POST方式提交的表单在本质上就是封装在request对象中的,而request对象是必须要经过过滤器的处理的,所以对于表单的中文问题来说,可以在filter中对所有的请求进行编码格式的处理,这样就不必在每个表单中都进行转码处理,节省大量的时间和精力。 中文处理过滤器 注:此方法仅限提交方法为doPost,对于doGet方法可以用转码 文件名:SetCharacterEncodingFilter.java package filters; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.UnavailableException; public class SetCharacterEncodingFilter implements Filter { protected FilterConfig filterConfig; protected String encodingName; protected boolean enable; public SetCharacterEncodingFilter() { this.encodingName = gb2312; this.ena

文档评论(0)

136****7795 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档