springboot配置字符编码

这边主要有两种方式

方式一、使用传统的Spring提供的字符编码过滤器(Filter的方式)

因为,字符编码过滤器在框架中已经有了,所以我们不需要自己写了。直接进行配置类的实现:

@Configuration
public class CharacterConfig {
    @Bean
    public FilterRegistrationBean filterRegistrationBean(){

        //创建SpringWeb提供的字符编码过滤器,主要实现字符编码过滤
        CharacterEncodingFilter filter = new CharacterEncodingFilter();
        filter.setForceEncoding(true);//强制对请求的编码,
        filter.setEncoding("GBK");//使用GBK编码
        
        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
        filterRegistrationBean.setFilter(filter);
        filterRegistrationBean.addUrlPatterns("/*");
        return filterRegistrationBean;
    }
}

上述方式表示将请求路径为“/”的所有请求都进行字符编码的过滤,具体过滤方式看set方法里面的内容。

注意:只有当application.properties配置文件中server.servlet.encoding.enabled=false时,上述编码过滤器才会工作。

 方式二、使用配置文件的方式进行字符编码

在配置文件中加入一下键值对:

#第一种加入编码的方式。这种方式好像现在的springboot不太推荐
server.servlet.encoding.enabled=true

#第二种方式:推荐的方式,第二种方式需要将上面的false改成true
server.servlet.encoding.charset=UTF-8
server.servlet.encoding.force=true
posted @ 2020-08-03 20:24  quintan  阅读(2512)  评论(0)    收藏  举报