jsp中文乱码问题解决方法

在jsp开发过程中会遇到各种中文乱码问题,对乱码的处理方法也有所不同!究其原因.大部分是因为编码默认采用ISO-8859-1或者是编码不一致导致的,悲剧的是默认的ISO-8859-1编码不支持中文!(唉,中国...感慨一下,不解释)所幸,UTF-8,GBK,GB2312都是支持中文的!

 

     1.    jsp页面中文乱码    这种乱码最常见也最好解决  在page指令中添加页面内容和显示方式的设置,如下两种都可以:

  • <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
  • <%@ page language="java" import="java.util.*" ContentType="text/html;charset=gb2312"%>

          有人会问pageEncoding和ContentType有什么区别,简单说

         contentType指定的是JSP页最终 Browser(客户端)所见到的网页内容的编码 

         pageEncoding指定JSP编写时所用的编码

         具体不解释

     2.    表单提交中文乱码   对于表单中提交的数据可以用转码方式解决(适合单一表单)也可以用过滤器解决(适合多表单),个人推荐用过滤器,一了百了,当然采取哪种方法由你来决定!

                                                                            过滤器

注:此方法仅限提交方法为doPost,doGet方法可以用转码

文件名:SetCharacterEncodingFilter.java

 

 

在web.xml中添加过滤器的配置如下:

 

  

 

                                                                             转码 

文件名:FormCharset.jsp

 

 

此表单提交给自己,new String(userName.getBytes("ISO-8859-1"), "gb2312")这句代码是转换编码格式的关键,这种转码方式还可以用在读取数据库中文乱码的转码!但要是原来的字符编码不是ISO-8859-1时这个方法就会失效,出错!比如经过上面说的过滤器处理再使用这个方法就会发生错误!

         3.    URL传递中文参数乱码

URL传递中文参数乱码比较特殊,仅仅转换这个中文字符串的编码或者设置JSP页面显示编码都不能解决这个问题!必须对服务器的配置文件进行修改,这里针对Tomcat的配置文件进行修改,具体如下:

打开tomcat的conf目录下的server.xml配置文件,找到<Connector  port="8080"  maxThreads="150"  minSpareThreads="25"  maxSpareThreads="75"  enableLookups="false"  redirectPort="8443"  acceptCount="100" disableUploadTimeout="true"/>在port="8080"后面添加URL编码设置URLEncoding="gb2312"  重启服务器即可

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值