碰到中文乱码的问题,在百度和谷歌中晃荡了很久,tomcat也配置了URIEncoding,也写了filter过滤器就是不行。
有两种方式:
第一种:通过js将编码进行转换。
代码如下:
var changeURL = function(url, datas) {
var str = "";
for ( var i in datas) {
str += "&" + i + "=" + encodeURI(datas[i]);
}
if (str.length == 0) {
return url;
}
return url + "?" + str.substr(1);
}
?在代码中进行调用示例如下:
var datas={123:"124",name:"aaa"};
var url=changeURL("test.do",datas);
alert(url);
?第二种方式:通过伪form进行post数据提交,因为post提交的数据时不会出现乱码的。
代码如下:
function postCommit(divId,url,datas){
var str="<form action='"+url+"' method='post'>";
for(var i in datas){
str+="<input type='hidden' name='"+i+"' value='"+datas[i]+"' />";
}
str+="</form>";
document.getElementById(divId).innerHTML=str;
document.getElementById(divId).getElementsByTagName("form")[0].submit();
}
?
调用的例子如下:
var datas={loginName:"124",loginPassword:"aaa"};
postCommit("aaaa","bbbb.do",datas);
?这个需要在页面中加入id为aaaa的div,代码如下:
<div id="aaaa"></div>?