akunamotata 发表于 2013-1-23 02:38:29

Ajax中文乱码问题解决方案

js:
encodeURIComponent(name);
 
java:
String s = new String(request.getParameter("name").getBytes("ISO8859-1"), "UTF-8");
 
//encodeURIComponent使用了UTF8格式对字符进行编码
 
js:
encodeURIComponent(encodeURIComponent(name));
 
java:
java.net.URLDecoder.decode(....);
 
//两次调用encodeURIComponent方法会将utf-8格式编码变成xx%的格式。
 
 
PS:发现一个bug,在linux下
String s = new String(request.getParameter("name").getBytes("ISO8859-1"), "UTF-8");
解出来的是乱码,以下方法在win和linux中兼容解决此问题:
 
var data = {name:encodeURI($("#myName").val(),"utf-8")},pwd:"password"};   String name=URLDecoder.decode(request.getParameter("name"),"utf-8");
页: [1]
查看完整版本: Ajax中文乱码问题解决方案