@ResponseBody 中文乱码 问题
这篇博文针对的是以下的情形:
当@ResponseBody 的对象是个蕴含中文的实体对象时,一切正常,当@ResponseBody 的对象是个中文String时,接收到乱码。
(如果连前半句话的情况都是乱码的话,需要检查一下其他地方,比如web.xml里面有没有加encodingFilter、项目编码是不是utf-8之类的。)
解决方法:
在SpringMVC配置文件的mvc:annotation-driven标签中,追加supportedMediaTypes属性
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" />
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/plain;charset=utf-8</value>
<value>text/html;charset=utf-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
2017-12-07追记
以上解决方法不再合适。
首先,@ResponseBody直接 return String的请求方法比较少,一般都是返回一个数据结构,返回一个非String对象的话,就不会乱码了,所以没必要去改SpringMVC的全局配置。
其次,最好不要把StringHttpMessageConverter的supportedMediaTypes属性覆盖掉,会漏掉Content-Type类型,如上面所示,supportedMediaTypes里面的"application/json"就被漏掉了,只会间接地导致绑定Date类型的参数出问题。
比较合适的方法是:在@ResponseBody直接return String对象的请求方法中,追加produces属性。
@RequestMapping(value = "easy_return", method = RequestMethod.GET)
@ResponseBody
public String easyReturn() {
return "汉字";
}
@RequestMapping(value = "easy_return", method = RequestMethod.GET, produces = "application/json;charset=UTF-8")
@ResponseBody
public String easyReturn() {
return "汉字";
}
@ResponseBody 中文乱码 问题的更多相关文章
- Hession集成Spring + maven依赖通讯comm项目 + 解决@ResponseBody中文乱码
hessian结合spring的demo hessian的maven依赖: <!-- hessian --> <dependency> < ...
- 《经久不衰的Spring框架:@ResponseBody 中文乱码》
问题背景 本文并不是介绍@ResponseBody注解,也不是中文乱码问题的大汇总笔记,这些网上都有很多内容了.这边仅对几年前,一个卡壳了挺久时间的问题的解决过程做一个记录,以警惕自己,达到自醒得目的 ...
- Spring框架:@ResponseBody 中文乱码----------我的主题站内单点登录
问题背景 本文并不是介绍@ResponseBody注解,也不是中文乱码问题的大汇总笔记,这些网上都有很多内容了.这边仅对几年前,一个卡壳了挺久时间的问题的解决过程做一个记录,以警惕自己,达到自醒得目的 ...
- 《经久不衰的Spring框架:@ResponseBody 中文乱码》(转)
转载自:http://www.cnblogs.com/shanrengo/p/6429291.html 问题背景 本文并不是介绍@ResponseBody注解,也不是中文乱码问题的大汇总笔记,这些网上 ...
- Spring Mvc中@ResponseBody中文乱码解决,以及修改返回的Content-Type
http://www.codeif.com/topic/784 spring 3 mvc 的 @ResponseBody返回数据用起来很方便,但是中文乱码,而且返回的Content-Type不带编码信 ...
- easyUI 接收Spring Mvc中@ResponseBody中文乱码解决
接触springMVC不够深入,乱码困扰我到深夜,特此留下记忆: @responsebody默认滴是ISO-8859-1 Controller注解参数 @ResponseBody 标注后返回Strin ...
- SpringMvc返回@ResponseBody中文乱码
使用SpringMvc的@ResponseBody返回指定数据的类型做为http体向外输出,在浏览器里返回的内容里有中文,会出现乱码,项目的编码.tomcat编码等都已设置成utf-8,如下返回的是一 ...
- @ResponseBody中文乱码解决方案
java web项目,使用了springmvc4.0,用@ResponseBody返回中文字符串,乱码$$ 本以为很简单的问题,不过也找了一个小时. 网上有说这样配置的: <mvc:annota ...
- spring4.3.9 @ResponseBody中文乱码,全是问号
<mvc:annotation-driven> <mvc:message-converters register-defaults="true"> < ...
随机推荐
- c# dynamic实现动态实体,不用定义实体就能序列化为标准json
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...
- Java 之 字节输出流[OutputStream]
一.字节输出流 java.io.OutputStream 抽象类是表示字节输出流的所有类的超类,将指定的字节信息写出到目的地. 该类中定义了字节输出流的基本共性功能方法. 公性方法: public v ...
- SDcms1.8代码审计
由于工作原因,分析了很多的cms也都写过文章,不过觉得好像没什么骚操作都是网上的基本操作,所以也就没发表在网站上,都保存在本地.最近突然发现自己博客中实战的东西太少了,决定将以前写的一些文章搬过来,由 ...
- AE开发—利用IQueryFilter接口进行属性查询
在ArcGis Engine二次开发过程中,经常会需要用到查询统计的功能,而IQueryFilter是最常见的属性字段查询接口,可以用来做一些简单的查询工作. 现在有一些公交站点和公交路线的数据,可视 ...
- Matplotlib pyplot中title() xlabel() ylabel()无法显示中文(即显示方框乱码)的解决办法
有趣的事,Python永远不会缺席! 如需转发,请注明出处:小婷儿的python https://www.cnblogs.com/xxtalhr/p/11020246.html 一.无法正常显示原因 ...
- ScrollView小记
常用代理方法: - (void)scrollViewDidScroll:(UIScrollView *)scrollView 只有 [self.scrolView setContentOffset: ...
- MySQL基础篇
数据库基础知识 以MySQL为基础 数据库事务 :数据库中一组原子性的SQL操作,彼此状态一致.具有ACID特性. 事务 ACID 特性: 原子性:数据库事务是一个整体,其中的SQL操作要么全部提交成 ...
- 【nodejs代理服务器三】nodejs注册windows服务
node-windows I no longer have enough time to properly maintain this project and am seeking a new pri ...
- WinServer-SMTP服务
摘要 SMTP服务是用来发送邮件的,常用于代码中发送邮件,不能接收.本章介绍SMTP服务的安装,配置. 搭建F5负载均衡集群注意事项: 1.集群不能与exchang在同网段,否则发不出邮件. 2.AP ...
- python之匿名函数、递归与二分法
一.匿名函数 什么是匿名函数? 顾名思义就是没有名字的函数,在我们声明一个函数时会想起个什么函数名好,这个问题我想有时候会困惑大家的吧? def func(): #正常函数声明 pass prin ...