书音棋 发表于 2013-2-3 10:30:46

js url传参 中文乱码

在项目中经常回存在通过JS去请求操作的事件发生,而这些请求的url链接又通常会使用到中文。
 
而这些中文在JS中可以正常alert出来,但是提交给后台时就显示成乱码了。
 
这里提供一个解决方案,基本原理就是在JS中将中文转码成URI方式,如下:
 
        var queryTitle = document.getElementById('queryTitle').value;    
        queryTitle=encodeURI(queryTitle);
        queryTitle=encodeURI(queryTitle);       需要转2次
 这个不知道那个脑残设计的,靠
然后在后台获取的时候,解码URI:
 
        String newTitle = request.getParameter("newTitle");
        newTitle = java.net.URLDecoder.decode(newTitle, "utf-8");
 
这样就可以了
 
在客户端进行再次encodeURI操作,在服务器解码即可。 
        queryTitle=encodeURI(encodeURI(queryTitle)); 
        queryTitle=encodeURI(encodeURI(queryTitle));  
在jquery的ajax提交时会经常使用这种方式提交中文。
页: [1]
查看完整版本: js url传参 中文乱码