zoukankan      html  css  js  c++  java
  • 解决springboot序列化 json数据到前端中文乱码问题

    前言

    关于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. }


  • 相关阅读:
    java例题 汽油检测
    java常用api
    二分搜索法
    java例题
    java基础
    表单验证
    4.10 pm例题
    0805
    0731 框架Mybatis
    小结
  • 原文地址:https://www.cnblogs.com/edda/p/14028858.html
Copyright © 2011-2022 走看看