原码笔记

原码笔记

SpringBoot响应Json数据乱码通过配置的解决

小诸哥 0

场景

实现

把SpringBoot的response编码设置为utf-8

找到application.properties配置文件

添加如下:

#设置响应为utf-8
spring.http.encoding.force-response=true

再次刷新浏览器

SpringBoot返回json数据乱码

第一种解决方式

在请求RequestMapping直接设置,只针对请求,在拦截器返回json数据时有可能乱码

@RequestMapping(value ="/user", produces="application/json;charset=UTF-8")

第二种方式

不一定有效

#解决@ResponseBody中文乱码问题
spring:  
  http:
    encoding:
      force: true

第三种完美解决

实现WebMvcConfigurer接口

@Configuration
public class WebAppConfigurer implements WebMvcConfigurer {
 @Bean
    public HttpMessageConverter responseBodyConverter(){
  //解决返回值中文乱码
        StringHttpMessageConverter converter = new StringHttpMessageConverter(Charset.forName("UTF-8"));
        return converter;
    }
 
 @Override
 public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
  converters.add(responseBodyConverter());
 }
}

标签: SpringBoot 数据 解决