服务器不知道按哪种编码来处理HTML等文件来响应给浏览器的,所以处理post请求时,归根结底就是要处理response给浏览器的编码模式
切记:处理编码的代码段,一定要放置在获取写出流之前,在第一次使用response之前 即
放置在response.getWrite()之前。
三种格式如下:
1.1 response.setContentType("text/html;charset=utf-8");
1.2 response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
1.3 response.addHeader("ContentType","text/html;charset=utf-8");
浏览器在提交请求时,域名后的参数已经进行tomcat自带的ISO8859-1编码来进行编码了,所以要在服务器接收请求之前就告知服务器如何编码
即在tomcat服务器下的server.xml下修改参数:
<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8080"protocol="HTTP/1.1" redirectPort="8443"/>
其余的项目乱码问题,基本都是因为设置ide、project或者page时,没有进行设置编码格式,导致编码与解码出现偏差!
Servlet's characters of get and post
原文:https://www.cnblogs.com/EasgGoingHulk/p/12349122.html