后端返回中文数据乱码
之前使用springBoot的默认配置时,中文数据还是能够正常显示
在我加了日志拦截器之后,就显示中文乱码了
测试代码
@Controller @RequestMapping("/a/test") public class TestController { Logger logger= LoggerFactory.getLogger(TestController.class); @RequestMapping(value = "index") @ResponseBody public String index(DataMax dataMax){ logger.info("测试log日志运行"); return dataMax.getDataType(); } }
测试发现在返回响应内容里,会指定字符编码为charset=ISO-8859-1
因为没加拦截器之前好好的,所以就锁定位置,经过网上查询,是因为我在日志拦截器上加了@EnableWebMvc注解导致了
@Configuration @EnableWebMvc public class LogInterceptorConfig implements WebMvcConfigurer { @Autowired WebInterceptorProperties webInterceptorProperties; }
springBoot 文档有一段话
Finally, if you opt out of the Spring Boot default MVC configuration by providing your own @EnableWebMvc configuration, you can take control completely and do everything manually by using getMessageConverters from WebMvcConfigurationSupport.
《Spring Boot Reference Guide》
最后,如果您通过提供自己的@EnableWebMvc配置选择退出Spring Boot默认MVC配置,
则可以完全控制并使用WebMvcConfigurationSupport中的getMessageConverters手动完成所有操作。
我加了这个注解,导致springBoot相关的默认配置不生效,而是使用Spring自带的默认配置。
将@EnableWebMvc注解去掉之后就可以正常的