Get传递中文时出现乱码问题解决办法

1,首先要配置页面的请求编码:<%request.setCharacterEncoding=”utf-8”%>

2,修改tomcat下的server.xml中的connector节点,添加useBodyEncodingForURI="true" 和URIEncoding=”UTF-8”;变成如下的形式:
<Connector port="8080"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000" useBodyEncodingForURI="true"
disableUploadTimeout="true" URIEncoding=”UTF-8”/>
因为:server.xml的Connector节点增加useBodyEncodingForURI="true"
属性配置,即可控制tomcat对get方式的汉字编码方式,上面这个属性控制get提交也是用request.setCharacterEncoding("UTF-8")所设置的编码格式进行编码。所以自动编码为utf-8,接受页面正常接受就可以了。但我认为真正的编码过程是,tomcat又要根据
<Connector port="8080"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000" useBodyEncodingForURI="true"
disableUploadTimeout="true" URIEncoding=”UTF-8”/>
里面所设置的URIEncoding=”UTF-8”再进行一次编码,但是由于已经编码为utf-8,再编码也不会有变化了。如果是从url获取编码,接受页面则是根据
URIEncoding=”UTF-8”来进行解码的。

3,如果这样的设置还是会出现乱码的话,还可以进行下面的设置:传参前将该中文字符使用 URLEncoder.encode( <你的参数内容> , "UTF-8 ") 进行处理一下,再进行传递基本上就可以解决了。在 Firefox 身上基本上不会发生,因为它会自动将非 ISO-8859-1 字符转为该字符的表现形式。
别忘了导入 <%@page import= "java.net.URLEncoder " %> 包。(这种情况是,传递偶数中文时好着,但传递奇数中文时乱码)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值