您的位置:首页 > 其它

location.href方式跳转传值中文乱码解决

2013-10-20 21:41 344 查看

在js中通过location.href方式跳转页面并在路径上传递参数中文乱码解决

路径1:  location.href="<s:url action='indexUI' namespace='/qiantai' />?name=这里传入中文";

上面这种方式的话在action在获取name的值的话如果是中文就会出现乱码.

解决方式是:

先在js中将传递的中文进行编码:通过js的encodeURI函数对值进行两次(经过测试需2次)编码;

  location.href="<s:url action='indexUI' namespace='/qiantai' />?name="+encodeURI(encodeURI(searchval));

在action中获取时需要通过URLDecoder.decode(name, "UTF-8");方式进行解码即可.

路径2: $.getJSON("<s:url namespace='/product' action='list' />",{ name: '中文'}, function(data){});

ajax这种方式的话在action中获得name的值也会出现乱码.

解决方式是:

通过js的encodeURI函数对值进行一次(经过测试只需1次)编码:

$.getJSON("<s:url namespace='/product' action='list' />",{ name: encodeURI(searchval)}, function(data){});

同样在action中获取时需要通过URLDecoder.decode(name, "UTF-8");方式进行解码即可.

这样的话就可以解决路径传递中文乱码的问题,当然这只是其中一种方式,还有其他很多方式大家可以多尝试.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐