昨天上线后发现一个奇怪的问题,就是在IE的地址栏中输入带中文的参数,传到JAVA端后是乱码,但是在谷歌等浏览器中却没有此问题,导致运营人员配置的链接地址带中文,无法正确跳转我们的SEARCH页。
最后的解决方案是:
1、将跳转链接放在页面的节点中,用window.open跳转。
2、在tomcat的server.xml中设置编码格式为UTF-8。
3、在启动start.sh脚本中添加一句:
export LANG=zh_CN.UTF-8
完美解决,无需在JAVA端转码了!!!
另外,又发现了最正确的解决方法,就是encodeURI() 函数,只需在带有中文的链接用该函数即可,其他地址无需解码即可使用。
注意:
encodeURI() 函数和encodeURIComponent()函数的区别:前者只对中文部分转码,后者对特殊字符也会转码。
本文详细介绍了如何解决在IE浏览器中输入带中文参数导致的地址栏显示乱码问题,包括使用window.open进行页面跳转、在tomcat server.xml中设置编码格式为UTF-8以及在启动脚本中设置LANG环境变量的方法。同时指出使用encodeURI()函数作为最正确的解决方式,避免JAVA端进行转码操作。

6376

被折叠的 条评论
为什么被折叠?



