144-SpringBoot的编码问题?

第一种方式:直接在配置文件中设置浏览器的解析编码的格式

#设置字符编码
#开启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的版本。

posted on 2020-04-22 22:11  十年磨三劍  阅读(414)  评论(0编辑  收藏  举报

导航