解决方案总结:
方法一、修改jQuery源代码
在1.3.2版本中修改第3737行:
s[ s.length ] = encodeURIComponent(key) + '=' + encodeURIComponent(value);
修改后:
s[ s.length ] = encodeURIComponent(key) + '=' + encodeURIComponent(encodeURIComponent(value));
在Servlet中添加代码:
java.net.URLDecoder.decode(request.getParameter("name"), "UTF-8");
方法二、修改jQuery源代码
在1.3.2版本中修改第3369行
contentType: "application/x-www-form-urlencoded",
修改后:
contentType: "application/x-www-form-urlencoded;charset=utf-8",
方法三、在Servlet中加入代码
response.setContentType("text/html charset=UTF-8");
response.setCharacterEncoding("UTF-8");
注:在JSP页面<@page>标签里面的pageEncoding和contentType, 是控制JSP页面上的内容。而上面的代码是控制response响应的编码格式。例如使用jQuery来传递返回值, 那么<@page>标签里面的pageEncoding和contentType就没用效果了, 需要在Servlet里面添加上面的代码