springboot配置字符编码

时间:2023-03-08 18:35:11

这边主要有两种方式

方式一、使用传统的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