window.location.href="";跳转到servlet中,但在IE浏览器中传递的中文参数在servlet变成乱码???

window.location.href="<%=basePath%>gmember/gmember_saveGroupCondition.action?groupname="+groupname+"&condition="+cd;

在用get提交页面的时候,传参时有的参数会变成中文乱码,即使我们加了Filter什么的也没用,因为参数在传到后台之前就已经变成了乱码。
解决方法:
前台:
<script>
var str = '中文';
str = encodeURI(encodeURI(str));
</script>
然后将参数传到后台,在后台的处理:
String str = request.getParameter("str");
str = java.net.URLDecoder.decode(str,"utf8");
这样,中文的参数传到后台的时候就可以处理,还原到中文了。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-12-16
js原因
可用encodeURI() 函数可把字符串作为 URI 进行编码。

注:
①encodeURI()需转2次,encodeURI(encodeURI(url))
②如果 URI 组件中含有分隔符,比如 ? 和 #,则应当使用 encodeURIComponent() 方法分别对各组件进行编码。

PS:有问题再追问本回答被提问者采纳

window.location.href="";跳转到servlet中,但在IE浏览器中传递的中文...
在用get提交页面的时候,传参时有的参数会变成中文乱码,即使我们加了Filter什么的也没用,因为参数在传到后台之前就已经变成了乱码。解决方法:前台:var str = '中文';str = encodeURI(encodeURI(str));然后将参数传到后台,在后台的处理: String str = request.getParameter("str");str = java.net.URLDecoder.d...

相似回答