解決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. }



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM