SpringMVC ajax JSON 中文乱码问题
2013-07-30 19:10
483 查看
由于之前一直都是研发自己的MVC和动态表单架构,最近因为一个技术研究的项目,开始接触Spring MVC。各种标注带来了很好的开发感受,但是今天被AJAX的json返回折磨了好久。一直都是乱码。尝试了网上的各种方法,都不理想。 最后通过研究StringHttpMessageConverter源代码发现,开发者很坑的使用了"ISO-8859-1"作为默认编码。这种西欧编码在如今的开源届也不多见,不知道是不是Spring一直忘记改了。Java代码
public class StringHttpMessageConverter extends AbstractHttpMessageConverter<String> {
public static final Charset DEFAULT_CHARSET = Charset.forName("ISO-8859-1");
private Charset getContentTypeCharset(MediaType contentType) {
if (contentType != null && contentType.getCharSet() != null) {
return contentType.getCharSet();
}
else {
return DEFAULT_CHARSET;
}
}
发现这段之后,就好处理了,由于DEFAULT_CHARSET无法通过IoC进行修改,最直接的方式就是完成自己的AbstractHttpMessageConverter,命名为:UTF8StringHttpMessageConverter。逻辑和StringHttpMessageConverter 一致,只需将DEFAULT_CHARSET修改为UTF-8即可。Java代码
public class UTF8StringHttpMessageConverter extends
AbstractHttpMessageConverter<String> {
public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8");
public class StringHttpMessageConverter extends AbstractHttpMessageConverter<String> {
public static final Charset DEFAULT_CHARSET = Charset.forName("ISO-8859-1");
private Charset getContentTypeCharset(MediaType contentType) {
if (contentType != null && contentType.getCharSet() != null) {
return contentType.getCharSet();
}
else {
return DEFAULT_CHARSET;
}
}
发现这段之后,就好处理了,由于DEFAULT_CHARSET无法通过IoC进行修改,最直接的方式就是完成自己的AbstractHttpMessageConverter,命名为:UTF8StringHttpMessageConverter。逻辑和StringHttpMessageConverter 一致,只需将DEFAULT_CHARSET修改为UTF-8即可。Java代码
public class UTF8StringHttpMessageConverter extends
AbstractHttpMessageConverter<String> {
public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8");
相关文章推荐
- Maven+SpringMVC+Hibernate+ajax:用ajax传递json到前台中文出现问号乱码问题
- Maven+SpringMVC+Mybatis+ajax:后台传值到前台中文出现问号乱码问题
- SpringMVC Ajax返回的请求json 的方式来解决在中国字符串乱码问题
- java springmvc post和get中文乱码问题
- ajax请求数据,Json返回到页面的数据出现中文乱码问题。
- 解决Spring MVC @ResponseBody返回中文字符串乱码问题
- spring boot新手教程之使用FastJson解析JSON数据以及解决返回中文乱码问题
- spring-mvc解决中文乱码问题
- Spring MVC @ResponseBody返回中文字符串乱码问题
- 解决Spring MVC @ResponseBody返回中文字符串乱码问题
- 解决Spring MVC @ResponseBody返回中文字符串乱码问题
- Spring MVC @ResponseBody注解返回响应流时中文乱码问题的解决
- Spring MVC @ResponseBody返回中文字符串乱码问题
- SpringMVC3.2 处理Ajax请求时返回json字符串的中文乱码问题
- SpringMVC + mybatis 传参中文乱码问题
- Spring MVC @ResponseBody 返回中文乱码问题
- SpringMVC @ResponseBoby 返回json字符串中文乱码
- 解决spring-mvc @responseBody注解返回json 乱码问题
- 解决spring-mvc @responseBody注解返回json 乱码问题
- spring mvc + ajax 中文乱码