第一种方式:直接在配置文件中设置浏览器的解析编码的格式
#设置字符编码 #开启springboot的http字符编码的支持 spring.http.encoding.enabled=true #强制使用指定字符编码 spring.http.encoding.force=true #指定使用的字符编码 spring.http.encoding.charset=UTF-8
第二种方式
1.创建配置类,配置编码格式
@Configuration public class SystemConfig { @Bean public FilterRegistrationBean characterFilterRegistration() { //字符编码过滤器 CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter(); //强制使用指定字符编码 characterEncodingFilter.setForceEncoding(true); //设置指定字符编码 characterEncodingFilter.setEncoding("UTF-8"); //创建过滤器注册bean对象 FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(); //设置字符过滤器 filterRegistrationBean.setFilter(characterEncodingFilter); //设置字符过滤器路径 filterRegistrationBean.addUrlPatterns("/*"); return filterRegistrationBean; } }
2)更改原配置文件,使我们的配置类起作用
#关闭springboot工程对http字符编码的支持
#只有关闭该选项之后 ,spring字符编码过滤器才可生效
#注意在这里spirngboot的版本只能是2.2.6,不能是2.3.0要不然会失效
spring.http.encoding.enabled=false
注意:这两种添加对应的都是SpringBoot集成Servlet,但如果集成SpringMVC框架的话,我们什么都不用添加,因为SpringBoot已经给我们添加号的SpringMVC框架的编码过滤器了。我猜测可能是SpringBoot开启了默认设置。一定要注意SpringBoot的版本。