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");