1、出现问题的现象!如下截图,使用SpringBoot 进行开发,接口返回的内容出现中文乱码?

接口内容想要返回的内容:

页面返回内容:

惊喜不?意外不?

为什么出现这个情况?不例外的话,很多同事都是替换了SpringBoot自带的Json框架为FastJson解析工具了。

在替换的过程中,没有注意编码格式造成的!

@SpringBootApplication(scanBasePackages = {"com.spring.resource.cloud*"})
@ServletComponentScan({"com.spring.resource.cloud*"})
public class ResourceUploadGuestApplication { public static void main(String[] args) {
SpringApplication.run(ResourceUploadGuestApplication.class, args);
} @Bean
public HttpMessageConverters fastJsonHttpMessageConverters(){
//创建FastJson信息转换对象
FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter();
//创建Fastjosn对象并设定序列化规则
FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
//规则赋予转换对象
fastJsonHttpMessageConverter.setFastJsonConfig(fastJsonConfig);
return new HttpMessageConverters(fastJsonHttpMessageConverter);
}
}

2、解决问题呗!

我们从上面的代码可以看出,在进行数据转换的时候,直接食用FastJson进行替换了原本的默认转换工具。那既然出现问题,一定是新的转换工具出现了问题!

那我们在设定转换过程,是不是可以设定具体转换之后的数据类型及编码格式呢?答案是肯定的!

    @Bean
public HttpMessageConverters fastJsonHttpMessageConverters(){
//创建FastJson信息转换对象
FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter(); //创建Fastjosn对象并设定序列化规则
FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
// 中文乱码解决方案
List<MediaType> mediaTypes = new ArrayList<>();
mediaTypes.add(MediaType.APPLICATION_JSON_UTF8);//设定json格式且编码为UTF-8
fastJsonHttpMessageConverter.setSupportedMediaTypes(mediaTypes); //规则赋予转换对象
fastJsonHttpMessageConverter.setFastJsonConfig(fastJsonConfig); return new HttpMessageConverters(fastJsonHttpMessageConverter); }

这样就解决了乱码问题了!

3、为什么这么修改呢?

如果你看到结果之后,想知道为啥这么修改的话,debug!

初始化的时候,我们看到

SupportedMediaTypes值为 */* 这样对于很多浏览器是识别不了具体的格式和编码类型的,所以出现乱码和非格式化的样子!

 

(2)指定格式个编码类型之后,出现了JSON格式和UTF-8编码格式,其实对应枚举对象就是

/**
* Public constant media type for {@code application/json;charset=UTF-8}.
*/
public final static MediaType APPLICATION_JSON_UTF8;

 

  小白看问题,浅显不深究

如若表达不清晰或存疑,可留言指教!

      感谢来过

  放松一下啦,找找下图几个方脸吧!

————————————————————————————————————————————————

      (^ _ ^)  (^ _ ^)(^ _ ^)(^ _ ^)(^ _ ^)(^ _ ^)

       (^ _ ^)[^ _ ^](^ _ ^)(^ _ ^)[^ _ ^](^ _ ^)

        (^ _ ^)(^ _ ^)(^ _ ^)(^ _ ^)(^ _ ^)

          (^ _ ^)[^ _ ^](^ _ ^)(^ _ ^)

            (^ _ ^)(^ _ ^)(^ _ ^)

              (^ _ ^)[^ _ ^]

                  (^ _ ^)

————————————————————————————————————————————————

最新文章

  1. eclipse配置tomcat
  2. 关于margin的问题
  3. Mysql: ERROR 1030 (HY000): Got error 28 from storage engine
  4. MongoDB.WebIDE:升级版的Mongodb管理工具
  5. 解决Volley请求网络数据返回的数据乱码
  6. hdu 2897(威佐夫博奕变形)
  7. iOS 全局竖屏 单个viewcontroller点击按钮支持横屏
  8. 关于docker中的几个小命令
  9. android 点击重新加载界面设计
  10. php 燕十八 观察者模式代码例子
  11. 工业CF卡与商业CF卡对比
  12. express手工实现session原理
  13. 201521123064 《Java程序设计》第11周学习总结
  14. linux-非root用户运行tomcat
  15. Git学习(一):初始化仓库、添加文件、版本回退
  16. 自学Linux Shell9.1-安装软件程序
  17. 高效能程序员的七个习惯【csdn】
  18. maven 添加jdbc6
  19. python类的内置方法
  20. PAT甲题题解-1106. Lowest Price in Supply Chain (25)-(dfs计算树的最小层数)

热门文章

  1. linux lnmp搭建及解释
  2. spring schedule定时任务(一):注解的方式
  3. PHPmysqli的 其他函数 从数据库中读出数据并且打印出来
  4. R语言︱集合运算——小而美法则
  5. 芝麻HTTP:一个采集系统的构建
  6. 小实验3:实现haproxy的增、删、查
  7. 由内搜推送思考Kafka 的原理
  8. Luogu P1410 子序列
  9. 【洛谷1855】 榨取kkksc03
  10. Spark ML源码分析之一 设计框架解读