SpringBoot返回页面乱码解决

SpringBoot返回页面乱码解决
参考文章:http://www.cnblogs.com/Darlin356230410/p/9269838.html

本人新手,刚刚学习SpringBoot,在做全局异常处理的时候,返回中文字符串时,出现乱码情况,网上查阅资料之后,解决方式如下所示,自定义WebConfiguration继承WebMvcConfigurationSupport类(用的是SpringBoot2.0)。
(之前返回json串时遇到乱码问题,是在@RequestMapping中添加了 produces=“application/json;charset=utf-8”。 但是在处理全局异常信息是,没有@RequestMapping这个注解去添加该属性(也许是我学的太浅,还没找到吧),而且这中做法还限制了请求的数据类型。于是继续寻找合适的方法,最终找到此解决方案)



import java.nio.charset.Charset;
import java.util.List;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.StringHttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;

import com.fasterxml.jackson.databind.ObjectMapper;

import ch.qos.logback.classic.pattern.MessageConverter;

/**
 * 解决页面返回的中文乱码。
 * 自定义消息转换器:自定义WebConfiguration继承WebMvcConfigurationSupport类
 * @author Administrator
 * @date 2018年10月18日上午12:34:22
 */
@Configuration
public class WebConfiguration extends WebMvcConfigurationSupport{
	
	//1.这个为解决中文乱码
	@Bean
	public HttpMessageConverter<String> responseBodyConverter() {
	    StringHttpMessageConverter converter = new StringHttpMessageConverter(Charset.forName("UTF-8"));
	    return converter;
	}
	
	
	//2.1:解决中文乱码后,返回json时可能会出现No converter found for return value of type: xxxx
	//或这个:Could not find acceptable representation
	//解决此问题如下
	public ObjectMapper getObjectMapper() {
		return new ObjectMapper();
	}
	
	//2.2:解决No converter found for return value of type: xxxx
	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
	    //或这个:Could not find acceptable representation
	    converters.add(messageConverter());
	}

}
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值