1.GET请求
tomcat8之前,GET请求的默认编码格式是欧洲标准:ISO-8895-1
tomcat8及之后,GET请求的默认编码已经改为UTF-8了
tomcat8之前修改GET的请求的编码主要有以下几种方式。
1)在tomcat目录下的conf目录中的server.xml文件中,修改Connector标签的值为
<Connector executor="tomcatThreadPool" port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" <!-- 添加参数 --> URIEncoding="UTF-8" useBodyEncodingForURI="true"/>
2)在服务中(service/doGet方法中)使用一下语句自己转换编码 : 推荐
String username = new String(request.getParameter("username").getBytes("iso8859-1"),"utf-8");
2. POST请求
不管是Tomcat8之前还是Tomcat8之后,Servlet在获取到post请求的值的时候,默认编码格式都是ISO-8895-1。所以要解决中文乱码问题,只能在调用getParameter等方法前先改变HttpServletRequest对请求体的编码格式要求,可以先使用下面的语句
request.setCharacterEncoding("utf-8");
来源:https://www.cnblogs.com/linglongfang/p/12592469.html