springboot + post 中文乱码

时间:2024-01-25 15:46:37

去检查你的 filter 配置,是否配置了一个最高优先级的 filter, 这个最高优先级的 filter 会影响 springboot 自动配置的 CharacterEncodingFilter。原因如下:

  在tomcat里:

  1. request对象的parameter并不是一开始就解析的,它是等你第一次调用getParameter*等获得请求参数有关的方法的时候才解析的

  2. paramter一旦被解析过一次,那就不会再次被解析

  所以如果在CharacterEncodingFilter之前有另外一个filter,而这个filter调用了getParameter*方法,那么就有可能使用错误的encoding来解析,从而造成乱码问题。

方法:修改你自己配置的 filter的优先级,至少比 CharacterEncodingFilter 的优先级低。