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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_30531261/article/details/82391399

今天又遇到了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

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

猜你喜欢

转载自blog.csdn.net/weixin_30531261/article/details/82391399