关于window.open()中文传值乱码问题的解决方法

Posted 崔伊平

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于window.open()中文传值乱码问题的解决方法相关的知识,希望对你有一定的参考价值。

最近组长叫我做一个把查询出的数据用POI导出Excel的功能,我前台把要查询的字段通过如下传回后台时,发现出现了乱码问题

window.open(‘user!export?name=‘+name);

试了一下只有中文出现乱码,于是搜索了一下相关的文档,找到了解决乱码的办法。

浏览器自动把参数值用"ISO8859-1"的方式编码,于是前端需要解码两次

var val = encodeURI(name);    
val = encodeURI(val);
window.open(‘user!export?name=‘+val);

在后台的controller里面用URLDecoder类再解码一次

URLDecoder.decode(name.trim(), "utf-8")

这样取出来的值就不会出现乱码了。

 

以上是关于关于window.open()中文传值乱码问题的解决方法的主要内容,如果未能解决你的问题,请参考以下文章

window.open()页面之间函数传值

使用window的open方法实现子页面向父页面传值。

JS 子窗口向父窗口传值

用javascript中的window.opent()进行页面传值

高级篇javascript静态页面传值的三种方法 url方法,取值方便,可跨域; cookie方法,同源访问; window.open方法,指向父窗口

高级篇javascript静态页面传值的三种方法 url方法,取值方便,可跨域; cookie方法,同源访问; window.open方法,指向父窗口