最近在一个基于struts 2的项目中,遇到了JS传递中文参数乱码的问题,郁闷的蛮久,终于找到了解决方法。
在JS中,我有一个方法,为Form指定Action,如下:
function zw(){
var url = "***.action?zw="+zw(中文);
document.myform.action=url;
document.myform.submit()
}
这样URL传递的中文参数会出现乱码。
解决方法:
Step1 为Tomcat服务容器设定URL编码格式
找到TOMACAT的Server.xml,修改Connector为:
<Connector executor="tomcatThreadPool"
port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"(添加此行)
/>
Step2 为URL编码
function zw(){
var url = "***.action?zw="+zw(中文);
url = encodeURI(url);(添加此行)
document.myform.action=url;
document.myform.submit()
}
搞定!