@ResponseBody 乱码,这个问题网上遇到的比较多,大家应用的情形又大不相同。很多人会很郁闷,即使全局设置UTF-8编码,有时候也会有问题。
不过总体上两个思路:
1.修改项目中类似app-config.xml 配置文件。(资料网上很好找,或者参看文章后面参考链接)
text/html;charset=UTF-8
需要注意一下用text/plain 还是使用text/html。配置xml 配置的是全局的,可能会影响到其它的action动作。
2.注解在注解上配置。(资料网上也很好找,或者参看文章后面参考链接)
@RequestMapping(value="xxxx/xxx.action", produces="text/html;charset=UTF-8")
这个配置的是单个方法的 不会影响到其它的action.
上面的步骤是解决了StringHttpMessageConverter 默认编码的问题,Spring 中这个编码默认使用ISO-8859-1的。
另外一个问题就是ExtJs 页面的解码:status = Ext.encode(response.responseText); 有的时候直接使用response.responseText就可以 这个根据实际情况。
可提供参考文章链接:
http://blog.csdn.net/yiyuhanmeng/article/details/7441380
http://forum.springsource.org/showthread.php?81858-ResponseBody-and-UTF-8/page2