码迷,mamicode.com
首页 > 其他好文 > 详细

@ResponseBody 返回乱码 的解决办法

时间:2017-11-25 19:16:10      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:utf-8   convert   $.ajax   message   属性   字符集   自己   static   pos   

1:最快的  最简单的办法是  在Ajax请求脸面指定头信息Accept属性,StringHttpMessageConverter默认iso-8859-1编码,但是会根据请求头信息指定的编码格式来转换,所以只需要在ajax请求的时候指定头信息Accept属性就可以了。

$.ajax({  
        url: subUrl,
        type: ‘POST‘,
        data: formData,
        cache: false,
        contentType: false,
        processData: false,
        headers: {Accept : "text/plain; charset=utf-8"},
        success: function (rs){
            alert(rs);
        },
        error: function (rs){
                alert(rs);
        }
});        

 

2:spring MVC有一系列HttpMessageConverter去处理用@ResponseBody注解的返回值,如返回list则使用MappingJacksonHttpMessageConverter,返回string,则使用StringHttpMessageConverter,这个convert使用的是字符集是iso-8859-1,而且是final的。

public static final Charset DEFAULT_CHARSET = Charset.forName("ISO-8859-1"); 

自己重写一个StringHttpMessageConverter,使用你想要的字符集,并且使这个属性可注入。

3:不使用String直接返回对象就不会乱码了

@ResponseBody 返回乱码 的解决办法

标签:utf-8   convert   $.ajax   message   属性   字符集   自己   static   pos   

原文地址:http://www.cnblogs.com/jype/p/7895956.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!