昨天上线后发现一个奇怪的问题,就是在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()函数的区别:前者只对中文部分转码,后者对特殊字符也会转码。