Spring Boot 乱码问题,主要是Controller返回乱码和读取application.properties文件中的内容乱码。
解决方法:我使用的是Intellij Idea
1、Ctrl+Alt+S:打开设置界面(也可以:File-->Settings打开),-->Editor-->File EnCodings:
有编码的地方都设置为UTF-8,“Transparent native-to-ascii conversion” 选项勾选上。
2、读取application.properties文件中的内容乱码
application.properties 文件中添加:
banner.charset=UTF-8 server.tomcat.uri-encoding=UTF-8 spring.http.encoding.charset=UTF-8 spring.http.encoding.enabled=true spring.http.encoding.force=true spring.messages.encoding=UTF-8
3、Controller返回乱码
添加配置类:
/** * 配置类:解决Controller返回中文乱问题 */ @Configuration public class EncodingConfig extends WebMvcConfigurerAdapter { private static final Logger logger=Logger.getLogger(EncodingConfig.class); @Bean public HttpMessageConverter<String> responseBodyConverter() { StringHttpMessageConverter converter = new StringHttpMessageConverter(Charset.forName("UTF-8")); logger.info("*************************Encoding UTF-8**************************"); return converter; } @Override public void configureMessageConverters( List<HttpMessageConverter<?>> converters) { super.configureMessageConverters(converters); converters.add(responseBodyConverter()); } @Override public void configureContentNegotiation( ContentNegotiationConfigurer configurer) { configurer.favorPathExtension(false); } }