前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >IE、FireFox、Chrome浏览器中关于URL传参中文乱码,解决兼容性问题!

IE、FireFox、Chrome浏览器中关于URL传参中文乱码,解决兼容性问题!

作者头像
麦克劳林
发布2018-09-11 16:51:00
3.3K0
发布2018-09-11 16:51:00
举报
文章被收录于专栏:软件工程师成长笔记

前台用url传值中文,后台用request.getParameter接收参数。在Firefox,Chrome等浏览器中没有问题。但用IE浏览器就又会出现参数中文乱码现象。 IE、Firefox、Chrome浏览器对URL的处理各不相同,浏览器在传输URl时得对URL进行编码,IE默认是以UTF-8来传输 的,Firefox肯定不是以UTF-8来编码,有可能是以ISO-8859-1来编码的,而Chrome好像是采用的GBK来编码。 如果不对中文参数进行处理,那么中文字符经各个浏览器以自己的编码方式传输到服务器后就出现了各种编码方式,而服务器却只能以一种编码方式来对接收到的URL进行解码。这样的话和服务器使用的编码方式一样的浏览器在使用带中文的URl时不会出现问题,其他的浏览器则会出现问题。

解决方法:

我们可以在参数传递之前,我们自己先进行编码,在获取参数时,我们再进行解码。这样就可以得到我们想要的中文参数了,而且很好的处理了不同浏览器中兼容性问题!

具体实例:
JSP页:
代码语言:javascript
复制
var newUrl = "checkLogin/lessonClassList?userName=张三";
newUrl = encodeURI(newUrl);//编码
$("#dg").datagrid("options").url=newUrl;
$("#dg").datagrid("reload");
JAVA后台:
代码语言:javascript
复制
String name = request.getParameter("userName");
String u_name = java.net.URLDecoder.decode(name, "UTF-8");// 解码
u_name = new String(u_name.getBytes("iso-8859-1"), "utf-8");

这样我们得到的u_name就是正常的中文参数了,很好的处理了在不同浏览器的兼容性!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017.08.22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 解决方法:
  • 具体实例:
    • JSP页:
      • JAVA后台:
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档