首页 > 技术文章 > 对于form中get请求和post请求的编码问题

Simon-s 2022-01-05 20:51 原文

当我们使用form表单获取数据,并提交请求的时候,不同的提交方式会产生不同的乱码问题

产生乱码的原因:

  1. 当我们以get方式提交表单,并且其中有中文的时候,浏览器会对中文进行一个uri的编码,%十六进制数,而浏览器默认的编码是utf-8,当请求到达tomcat中,需要进行解码,如果tomcat解码方式和浏览器的编码方式一样,则不会产生乱码,如果不一样就会产生乱码。每个tomcat中有默认的编码方式,tomcat9是默认utf-8,不会产生乱码。如果是低版本的需要解决get请求中的字符乱码问题,需要修改tomcat中的配置文件
  2. tomcat在处理post请求时候,默认的编码是iso-8859-1,而浏览器是utf-8,所以post请求会产生乱码

一句话:浏览器的编码和解码一般默认为utf-8,而tomcat9 对于get请求时utf-8,而对于post请求使用的iso-8859-1

如果是解决post请求中的字符乱码问题,设置字符编码过滤器就可以

!!springmvc中的字符编码过滤器解决的post请求中产生字符乱码的问题

 

推荐阅读