Jsp页面中地址栏参数传入中文的乱码问题

29 篇文章 0 订阅
12 篇文章 0 订阅

最近写一些东西,使用超链接在地址栏里传入中文后,遇见了一些乱码问题,查了一些资料,做一些总结。

一、Get提交方式产生的乱码

原因:浏览器首先会将这些中文字符进行编码然后再发送给服务器,地址栏中所输入的URL包含中文字符时,浏览器会将它们转 换为 application/x-www-form-urlencoded MIME 字符串,即一堆%xx%xx的字符串。

解决方法

 ①js或超链接等向地址栏中传入中文时,使用如下方式,将你需要传入的参数封装一下

 //把hh换成你要转换的字符串对象,编码类型填你需要转换的类型,需要和后面解码时候的编码类型一致
<% URLEncoder.encode(hh,"utf-8") %>

   后台解码

//此处注意解码时候和编码时候设定的字符集保持一致
String hh = request.getParameter("hh");
hh = URLDecoder.decode(hh,"utf-8");

 ②修改tomcat的server.xml中的配置(最推荐的做法)

    找到tomcat的安装目录---conf---server.xml

    找到如下两个Connector标签

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" />
。。。
。。。
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

    将之改为如下,即在后面加上指定的编码

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>
    。。。。
    。。。。
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8"/>

③使用高版本的Tomcat,解决了Get请求的中文乱码问题,亲测Tomcat7.xxx的没有解决,应该8之后有这个优化。

二、Post提交方式的中文乱码

       这种乱码解决方式很常见,就不多说了,直接一行代码,解决方式如下,推荐在后端代码的首行就加上,算是一个好习惯。

//在接收前台传入的参数之前,加入下面一行代码指定字符编码
request.setCharacterEncoding("utf-8");

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值