0904 接口返回数据中文乱码引发的测试和思考

今天又遇到了SpringMVC接口返回中文乱码问题,于是不断地测试以及搜索,最终还是有点进展。

简略的描述下:当时是这样的,接口返回map对象或者自定义对象的时候,不会中文乱码。当接口返回String类型时,就会有乱码问题。最终发现是跟SpringMVC的消息转换器有关,默认的StringHttpMessageConverter的编码是ISO-8859-1,正因如此,导致了乱码的发生。而json消息转换器MappingJackson2MessageConverter默认的编码是UTF-8,因此不会乱码。
解决方法:第一种方式是通过在spring-web.xml中配置SpringHTTPMessageConverter并指明UTF-8编码,从而解决乱码问题。这种方式只需要配置一个地方即可。第二种方式是在@RequestMapping上加上produces并指明utf-8编码,这种方式可以在修饰类的@RequestMapping注解上使用,也可以在修饰方法的@RequestMapping上使用。第三种方式是通过response对象指定编码,并通过writer对象的write方法输出信息。

详细的笔记记在了有道云笔记上,有需要的朋友可以:http://note.youdao.com/noteshare?id=c0e7bb7b353fb5131ec20e886f041238

下次再出现这个问题,应该能迅速的解决了吧?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值