方法一:
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.filter.CharacterEncodingFilter;
import java.nio.charset.StandardCharsets;
/**
* spring boot 解决中文乱码
*/
@Configuration
public class CharacterEncodingFilterConfig {
@Bean
public FilterRegistrationBean filterRegistrationBean() {
//用于注册过滤器
FilterRegistrationBean frb = new FilterRegistrationBean();
// 使用spring 提供的字符编码过滤器,不用自己写过滤器
CharacterEncodingFilter cef = new CharacterEncodingFilter(StandardCharsets.UTF_8.toString(),true);
frb.setFilter(cef);
return frb;
}
}
方法二:
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.StringHttpMessageConverter;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
import java.nio.charset.StandardCharsets;
import java.util.List;
@Configuration
@EnableWebMvc
public class MvcConfig extends WebMvcConfigurationSupport {
/**
* 解决中文乱码的问题
*
*/
@Bean
public HttpMessageConverter<String> responseBodyConverter() {
return new StringHttpMessageConverter(StandardCharsets.UTF_8);
}
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
converters.add(responseBodyConverter());
super.configureMessageConverters(converters);
}
}
方法三:
#在application.properties编写如下四行
spring.http.encoding.force=true #是否将编码强制到HTTP请求和响应上配置的字符集。默认为false
spring.http.encoding.enabled=true #是否启用http编码支持。默认为false
spring.http.encoding.charset=UTF-8 #HTTP请求和响应的字符集。如果没有明确设置,就将该字符集添加到Content-Type中
server.tomcat.uri-encoding=UTF-8 #用于解码URI的字符编码。