前言

关于springboot乱码的问题,之前有文章已经介绍过了,这一篇算是作为补充,重点解决对象在序列化过程中出现的中文乱码的问题,以及后台报500的错误。

问题描述

  • spring Boot 中文返回给浏览器乱码 解析成问号?? fastJson jackJson

  • spring boot 新增配置解决后台返回 json 到前台中文乱码之后,出现返回json数据报错:no convertter for return value of type

  • 注释掉解决中文乱码的问题之后返回对象json正常

解决中文乱码的配置

  1. @Configuration
  2. @EnableWebMvc
  3. @ComponentScan
  4. public class MvcConfiguration extends WebMvcConfigurerAdapter {
  5.    @Bean
  6.    public HttpMessageConverter<String> responseBodyConverter(){
  7.        StringHttpMessageConverter converter = new StringHttpMessageConverter(Charset.forName("UTF-8"));
  8.        return converter;
  9.    }
  10.    @Override
  11.    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
  12.        super.configureMessageConverters(converters);
  13.        //解决中文乱码
  14.        converters.add(responseBodyConverter());
  15.        //解决 添加解决中文乱码后 上述配置之后,返回json数据直接报错 500:no convertter for return value of type
  16.        converters.add(messageConverter());
  17.    }
  18. }

除了上述配置之后还有添加MappingJackson2HttpMessageConverter

  1. @Bean
  2.    public MappingJackson2HttpMessageConverter messageConverter() {
  3.        MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
  4.        converter.setObjectMapper(getObjectMapper());
  5.        return converter;
  6.    }

注意:responseBodyConverter和MappingJackson2HttpMessageConverter如果分开配置要确保前者不被覆盖,不然就会出现返回springboot返回json正常,但是返回中文乱码,或者返回中文不乱吗,但是返回对象或者json异常。

解决springboot范湖中文乱码和返回json 500错误的完整代码

  1. /**
  2. * spring boot 解决后台返回 json 到前台出现中文乱码的问题
  3. */
  4. @Configuration
  5. @EnableWebMvc
  6. @ComponentScan
  7. public class MvcConfiguration extends WebMvcConfigurerAdapter {
  8.    @Bean
  9.    public HttpMessageConverter<String> responseBodyConverter(){
  10.        StringHttpMessageConverter converter = new StringHttpMessageConverter(Charset.forName("UTF-8"));
  11.        return converter;
  12.    }
  13.    @Bean
  14.    public ObjectMapper getObjectMapper() {
  15.        return new ObjectMapper();
  16.    }
  17.    @Bean
  18.    public MappingJackson2HttpMessageConverter messageConverter() {
  19.        MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
  20.        converter.setObjectMapper(getObjectMapper());
  21.        return converter;
  22.    }
  23.    @Override
  24.    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
  25.        super.configureMessageConverters(converters);
  26.        //解决中文乱码
  27.        converters.add(responseBodyConverter());
  28.        //解决 添加解决中文乱码后 上述配置之后,返回json数据直接报错 500:no convertter for return value of type
  29.        converters.add(messageConverter());
  30.    }
  31. }

解决springboot序列化 json数据到前端中文乱码问题的更多相关文章

  1. 【原创】@ResponseBody返回json数据时出现中文乱码

    ι 版权声明:本文为博主原创文章,未经博主允许不得转载. 原因: Spring中解析字符串的转换器默认编码格式是ISO-8859-1 public class StringHttpMessageCon ...

  2. 解决SpringBoot项目中Thymeleaf模板的中文乱码问题

    1.使用IDEA创建SpringBoot项目 package com.example.demo; import org.springframework.boot.SpringApplication; ...

  3. 用easyui从servlet传递json数据到前端页面的两种方法

    用easyui从servlet传递json数据到前端页面的两种方法 两种方法获取的数据在servlet层传递的方法相同,下面为Servlet中代码,以查询表中所有信息为例. //重写doGet方法 p ...

  4. mvc 使用Newtonsoft.Json进行序列化json数据

    mvc 使用Newtonsoft.Json进行序列化json数据 JsonResult  使用js 序列号化,先集成扩展.使用newtonsoft http://blog.csdn.net/zhang ...

  5. (转)MySQL 插入数据时,中文乱码问题的解决

    MySQL 插入数据时,中文乱码问题的解决  原文:http://www.cnblogs.com/sunzn/archive/2013/03/14/2960248.html 当向 MySQL 数据库插 ...

  6. 解决loadrunner 脚本和replaylog中的中文乱码问题

    解决loadrunner 脚本和replaylog中的中文乱码问题 解决这个问题必须认识到一个事实就是,loadrunner和测试服务器交换数据使用的是utf8格式,但是展现在replaylog中是使 ...

  7. 解决ubuntu中zip解压的中文乱码问题

    转自解决ubuntu中zip解压的中文乱码问题 在我的ubuntu12.10中,发现显示中文基本都是正常的,只有在解压windows传过来的zip文件时,才会出现乱码.所以,我用另一个方法解决中文乱码 ...

  8. php函数:解决数组转对象时数组内中文乱码问题

    function to_urlencode(&$arr){//解决数组转对象时数组内中文乱码问题 foreach($arr as $key => $value){ if(is_array ...

  9. 解决docker容器中Centos7系统的中文乱码

    解决docker容器中Centos7系统的中文乱码问题有如下两种方案: 第一种只能临时解决中文乱码: 在命令行中执行如下命令: # localedef -i zh_CN -f UTF-8 zh_CN. ...

随机推荐

  1. Hive计算最大连续登陆天数

    目录 一.背景 二.算法 1. 第一步:排序 2. 第二步:第二列与第三列做日期差值 3. 第三步:按第二列分组求和 4. 第四步:求最大次数 三.扩展(股票最大涨停天数) 强哥说他发现了财富密码,最 ...

  2. HashSet的remove方法(一道面试题)

    1 public class CollectionTest { 2 3 @Test 4 public void test3(){ 5 HashSet set = new HashSet(); 6 Pe ...

  3. es添加index template

    在kibana页面选择最下方的management--elasticsearch--Index Management--Index Management 选择create a template添加in ...

  4. Python 操作 Redis 发布订阅

    Python 操作 Redis 发布订阅 介绍 Redis可以通过多个客户机订阅相同的频道,一个服务机在相应频道进行发布,从而实现在客户机收听服务机发布相应信息,可以利用这个机制实现多个客户机之间的信 ...

  5. Spark面试题(八)——Spark的Shuffle配置调优

    Spark系列面试题 Spark面试题(一) Spark面试题(二) Spark面试题(三) Spark面试题(四) Spark面试题(五)--数据倾斜调优 Spark面试题(六)--Spark资源调 ...

  6. [loj3075]组合数求和

    Subtask1:​​​$m,nd\le 2\times 10^{3}$ 对$M$质因数分解,假设$M=\prod_{i=1}^{k}p_{i}^{\alpha_{i}}$(其中$p_{i}$为素数) ...

  7. [bzoj1927]星际竞速

    考虑没有爆发,那么相当于是带权最小不可交路径覆盖,由于只能从编号小的到编号大的,因此一定是DAG,而DAG的最小路径覆盖可以拆点并跑最大流,那么带权的只需要跑费用流即可(S向i连(1,0)的边,i'向 ...

  8. 【性能优化】(2)JVM调优

    JVM调优 2019-07-21  12:32:00  by冲冲 1.

  9. [APIO2020]有趣的旅途

    注意到第一个点是可以钦定的. 那么我们考虑在重心的子树里反复横跳. 每次选择不同子树里的深度最大的点. 在同一颗子树里可能会在lca处出现问题. 那么我们选择重心,要考虑到会不会出现一颗子树不够选的操 ...

  10. Codeforces 285E - Positions in Permutations(二项式反演+dp)

    Codeforces 题目传送门 & 洛谷题目传送门 upd on 2021.10.20:修了个 typo( 这是一道 *2600 的 D2E,然鹅为啥我没想到呢?wtcl/dk 首先第一步我 ...