前言
關於springboot亂碼的問題,之前有文章已經介紹過了,這一篇算是作為補充,重點解決對象在序列化過程中出現的中文亂碼的問題,以及后台報500的錯誤。
問題描述
spring Boot 中文返回給瀏覽器亂碼 解析成問號?? fastJson jackJson
spring boot 新增配置解決后台返回 json 到前台中文亂碼之后,出現返回json數據報錯:no convertter for return value of type
注釋掉解決中文亂碼的問題之后返回對象json正常
解決中文亂碼的配置
@Configuration
@EnableWebMvc
@ComponentScan
public class MvcConfiguration extends WebMvcConfigurerAdapter {
@Bean
public HttpMessageConverter<String> responseBodyConverter(){
StringHttpMessageConverter converter = new StringHttpMessageConverter(Charset.forName("UTF-8"));
return converter;
}
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
super.configureMessageConverters(converters);
//解決中文亂碼
converters.add(responseBodyConverter());
//解決 添加解決中文亂碼后 上述配置之后,返回json數據直接報錯 500:no convertter for return value of type
converters.add(messageConverter());
}
}
除了上述配置之后還有添加MappingJackson2HttpMessageConverter
@Bean
public MappingJackson2HttpMessageConverter messageConverter() {
MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
converter.setObjectMapper(getObjectMapper());
return converter;
}
注意:responseBodyConverter和MappingJackson2HttpMessageConverter如果分開配置要確保前者不被覆蓋,不然就會出現返回springboot返回json正常,但是返回中文亂碼,或者返回中文不亂嗎,但是返回對象或者json異常。
解決springboot范湖中文亂碼和返回json 500錯誤的完整代碼
/**
* spring boot 解決后台返回 json 到前台出現中文亂碼的問題
*/
@Configuration
@EnableWebMvc
@ComponentScan
public class MvcConfiguration extends WebMvcConfigurerAdapter {
@Bean
public HttpMessageConverter<String> responseBodyConverter(){
StringHttpMessageConverter converter = new StringHttpMessageConverter(Charset.forName("UTF-8"));
return converter;
}
@Bean
public ObjectMapper getObjectMapper() {
return new ObjectMapper();
}
@Bean
public MappingJackson2HttpMessageConverter messageConverter() {
MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
converter.setObjectMapper(getObjectMapper());
return converter;
}
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
super.configureMessageConverters(converters);
//解決中文亂碼
converters.add(responseBodyConverter());
//解決 添加解決中文亂碼后 上述配置之后,返回json數據直接報錯 500:no convertter for return value of type
converters.add(messageConverter());
}
}