解决springboot序列化 json数据到前端中文乱码问题

摘要:
HttpMessageConverter&lt//解决中文乱码转换器。add(responseBodyConverter())//在添加上述配置以解决中文乱码之后;

前言

关于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数据到前端中文乱码问题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇shiro自定义logout filterdd命令详解下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

springboot之jackson的两种配置方式

springboot 针对jackson是自动化配置的,如果需要修改,有两种方式: 方式一:通过application.yml 配置属性说明:## spring.jackson.date-format指定日期格式,比如yyyy-MM-dd HH:mm:ss,或者具体的格式化类的全限定名 spring.jackson.deserialization是否开启J...

WorkBench3.2 + VxWorks6.8安装教程

写在前面: 非常感谢原文章作者,写得非常详细————https://blog.csdn.net/qq_35192280/article/details/85268313 下面是我自己在安装过程中遇到的问题及解决方法,其他部分完全可以按照原创作者来操作 开始的开始,先下载好原文章提供的文件,如果失效可以再给我留言,我也有保存。 1.这是最后安装好的样子 2....

Android Studio升级3.6 Build窗口出现中文乱码问题解决方案

1、Android Studio升级3.6后, Build窗口出现中文乱码问题 2、解决方案 点击Help—>Edit Custom VM Options 然后在打开的文件中添加一句 -Dfile.encoding=UTF-8    然后重启Android Studio 然后你就会发现,中文乱码的问题解决了...

python产生随机名字

# encoding: utf-8 import random as r a1=['张','金','李','王','赵'] a2=['玉','明','龙','芳','军','玲'] a3=['','立','玲','','国',''] for i in range(15): name=r.choice(a1)+r.choic...

robotframework自动化测试框架搭建及问题汇总

1.安装python RF框架是基于python 的,所以一定要有python环境,python与rf存在兼容性问题,我安装的是python3.7.5,robotframework3.1.2。 选择添加到path,或者自己手动配置环境变量,打开cmd 输入python -V可以看到安装的版本 官网https://www.python.org/下载比较慢,...

C++ 动态加载 DLL 时,GetProcAddress() 返回 NULL,GetLastError() 获取错误代码为 127

1、问题现象:   采用“运行期间动态链接”自己的 dll 文件,LoadLibrary() 成功获取 dll 模块句柄,但是 GetProcAddress() 返回 NULL。 2、问题分析:   调用 GetLastError() 获取错误代码为 127,意思是“找不到指定程序”;   用 Depends 工具(下载地址:http://www.depe...