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]