首页 > 编程语言 > 详细

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

时间:2020-11-24 11:09:48      阅读:129      评论:0      收藏:0      [点我收藏+]

前言

关于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数据到前端中文乱码问题

原文:https://www.cnblogs.com/edda/p/14028858.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!