三楼的办法很好啊,你可以按照以下方法逐个实验: 1、在接受参数之前,加上request.setCharacterEncoding(“UTF-8”); 2、对接收的参数进行重新编码:String name = new String(request.getParameter("name").getBytes("iso-8859-1"),"utf-8"); 3、响应也设置编码:response.setContentType("text/html;charset=UTF-8"); 4、如果还是不行,你可以用浏览器调试一下:浏览器空白处右键--->检查---->选择Network---->再在页面上提交一次表单,观察提交的数据是否乱码,如果还有乱码那说明不是后台接收的乱码,可能是你浏览器编码设置的。你先在你的jsp页面代码中检查下,是否添加了编码,然后检查下你的浏览器,或者换个浏览器试试
String name = new String(n.getBytes("iso-8859-1"),"utf-8");
处理 Request 接收参数的中文乱码问题
POST请求的解决方案:
request.setCharacterEncoding(“UTF-8”); --- 一定要在接收参数之前设置编码就OK.
GET请求的解决方案
使用String的构造方法:
String n = request.getParameter("name");
String name = new String(n.getBytes("iso-8859-1"),"utf-8");
Response响应中文乱码的处理
response.setContentType("text/html;charset=UTF-8");
<Connector port="8080" protocol="HTTP/1.1" URIEncoding='utf-8'
connectionTimeout="20000"
redirectPort="8443" />
1、在接受参数之前,加上request.setCharacterEncoding(“UTF-8”);
2、对接收的参数进行重新编码:String name = new String(request.getParameter("name").getBytes("iso-8859-1"),"utf-8");
3、响应也设置编码:response.setContentType("text/html;charset=UTF-8");
4、如果还是不行,你可以用浏览器调试一下:浏览器空白处右键--->检查---->选择Network---->再在页面上提交一次表单,观察提交的数据是否乱码,如果还有乱码那说明不是后台接收的乱码,可能是你浏览器编码设置的。你先在你的jsp页面代码中检查下,是否添加了编码,然后检查下你的浏览器,或者换个浏览器试试