首页 > Web开发 > 详细

URL传参时中文参数乱码的解决方法

时间:2015-10-29 18:16:13      阅读:245      评论:0      收藏:0      [点我收藏+]

URL传参时,中文参数乱码的解决:

 

今天在工作中遇到了这样的一个问题,在页面之间跳转时,我将中文的参数放入到url中,使用location进行跳转传参,但是发现接收到的参数值是乱码。我的代码是这样写的:

1.跳转前,对url进行了编码:

url = EMPTools.encodeURI(url);

window.location = url;

2.接收时,对url进行了解码:

url = decodeURI(url);

 

发现:接收到的信息并非正常的那种%和数字的编码,而是彻底的乱码(有方框有英文字母);

费解!

 

查找资料后,发现有些人的解决方式是将url二次编码,于是改为:

1.跳转前,对url进行二次编码:

url = EMPTools.encodeURI(EMPTools.encodeURI(url));

window.location = url;

2.接收时,对url进行了解码:

url = decodeURI(url);

 

发现:这次接收到的是含有%和数字的正常的url编码,但仍然不是汉字。

挠头!

 

细想后,既然编码时时二次编码,那解码时也应该是二次解码啊!

于是修改为:

1.跳转前,对url进行二次编码:

url = EMPTools.encodeURI(EMPTools.encodeURI(url));

window.location = url;

2.接收时,对url进行二次解码:

url = decodeURI(decodeURI(url));

 

结果:终于接收到正常的中文参数了!

疑问:为什么需要进行二次编码呢?

备注:

在jsp页面的中,最好能在调用request的所有方法的语句之前,加上设置request编码类型的代码:

request.setCharacterEncoding("UTF-8");

 

参考:http://blog.sina.com.cn/s/blog_683b7a840100iqh5.html

URL传参时中文参数乱码的解决方法

原文:http://www.cnblogs.com/duffy/p/4921078.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!