第一种方式:直接在配置文件中设置浏览器的解析编码的格式
#设置字符编码
#开启springboot的http字符编码的支持
spring.http.encoding.enabled=true
#强制使用指定字符编码
spring.http.encoding.force=true
#指定使用的字符编码
spring.http.encoding.charset=UTF-8
第二种方式
1.创建配置类,配置编码格式
@Configuration
public class SystemConfig {@Beanpublic 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的版本。