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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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");
这样,中文的参数传到后台的时候就可以处理,还原到中文了。
参考技术A js原因
可用encodeURI() 函数可把字符串作为 URI 进行编码。

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

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

window.location.href的用法

1.

window.location.href=window.location.href; 刷新当前页面,向指定的url提交数据

window.location.Reload():刷新当前页面。window.location.Reload()会提示是否提交

2.

self.location.href="/url" 当前页面打开URL页面

location.href="/url" 当前页面打开URL页面
windows.location.href="/url" 当前页面打开URL页面,前面三个用法相同。
this.location.href="/url" 当前页面打开URL页面
parent.location.href="/url" 在父页面打开新页面
top.location.href="/url" 在顶层页面打开新页面

以上是关于window.location.href="";跳转到servlet中,但在IE浏览器中传递的中文参数在servlet变成乱码???的主要内容,如果未能解决你的问题,请参考以下文章

window.location和window.location.href的区别

一个关于window.location.href=window.location.href的问题?

“window.location.href”和“window.location.hash”有啥区别?

window.location.href的用法

window.location.href的用法

window.open 与 window.location.href