目录
一、请求乱码
1.get请求时发生的乱码
get方式请求时,form表单提交的参数会放在uri后面,编码受到<meta charset="UTF-8">中的字符集编码影响
解决方法:
检查xxx.html文件中<meta charset="UTF-8">的字符编码与tomcat中的config->server.xml里的URIEncoding的字符编码是否相同,默认server.xml文件中没有URIEncoding,其默认为UTF-8
如不一样,则将其中的一个文件的字符编码修改成与另外一文件字符编码相同便可
详细如下图:
xxx.html文件:
tomcat->conf->server.xml文件的位置,tomcat前面的具体位置要找自己的tomcat存储在那个位置
server.xml文件:
2.post请求时发生的乱码
post方式请求时,form表单提交的参数会放在uri后面,也会编码受到<meta charset="UTF-8">影响
解决方式:
在要请求的XXX.java中加req.setCharacterEncoding("UTF-8");这里设置的字符集编码方式要与post请求中的<meta charset="UTF-8">编码方式一样,如这里的就都为UTF-8
注意:要在获取该请求参数的前面设置
二、响应乱码
如果发生的如下的乱码:
解决方式:
1.可以设置响应体的字符集编码方式与客户端的一致(不推荐,因为客户端解析字符集时无法预测的)
如图:
2.可以直接设置响应头setContentType的解码方式
如图:
3.比较稳妥的方式,就是直接两个都设置,这样就可以让响应的编码方式与解码方式一样
如图:
设置响应的编码方式与解码方式都为UTF-8