springmvc返回json字符串中文乱码问题
问题:
后台代码如下:
@RequestMapping("menuTreeAjax")
@ResponseBody
/**
* 根据parentMenuId获取菜单的树结构
* @param parentMenuId
* @return
*/
public String menuTreeAjax(Integer parentMenuId) {
JSONArray array = menuService.getTreeMenuByParentMenuId(parentMenuId);
return array.toString();
}
前台代码如下:
$.ajax({
url:'menuTreeAjax?parentMenuId=${menu.menuId}',
async:false,
dataType:"json",
success:function(data){
menuTree=data;
alert(data[0].text);
}
});
发现前台显示的json数据中的中文为???。乱码问题。
原因:
Spring中解析字符串的转换器默认编码居然是ISO-8859-1
如下所示:

解决方法:
方法一,使用(produces = "application/json; charset=utf-8")
@RequestMapping(value="menuTreeAjax", produces = "application/json; charset=utf-8")
@ResponseBody
/**
* 根据parentMenuId获取菜单的树结构
* @param parentMenuId
* @return
*/
public String menuTreeAjax(Integer parentMenuId) {
JSONArray array = menuService.getTreeMenuByParentMenuId(parentMenuId);
return array.toString();
}
方法二:在springmvc.xml配置:
<!-- 处理请求返回json字符串的乱码问题 -->
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
PS:如果返回的不是json,而只是一个字符串,则只需要这样就可以了。将produces改为text/html
@ResponseBody
@RequestMapping(value="webserviceDemo1", produces = "text/html; charset=utf-8")
public String webserviceDemo1(){
WeatherServiceService factory=new WeatherServiceService();
WeatherService service=factory.getWeatherServicePort();
String result=service.getWeatherByCityname("厦门");
return result;
}
springmvc返回json字符串中文乱码问题的更多相关文章
- Spring MVC3返回JSON数据中文乱码问题解决(转)
Spring MVC3返回JSON数据中文乱码问题解决 查了下网上的一些资料,感觉比较复杂,这里,我这几使用两种很简单的办法解决了中文乱码问题. Spring版本:3.2.2.RELEASE Jack ...
- springmvc 通过@ResponseBody 返回json的中文乱码解决方案2个
1.方法上面的RequestMapping要加上红色的部分. @ResponseBody @RequestMapping(value = "/search", prod ...
- 解决springmvc使用@ResponseBody返回String类型字符串中文乱码问题
问题分析: 首先: 确定的是只有当返回值是 String时才会出现中文乱码,而当返回值是Map<String, Object>或者是其它类型时,并没有中文乱码的出现. 然后找原因: 原因是 ...
- SpringMvc @ResponseBody字符串中文乱码原因及解决方案
今天突然发现一个问题,后来在网上也找到了很多解决思路,自己也查找到了问题所在,记录一下. @RequestMapping(value = "/demo1") @ResponseBo ...
- ztree通过ajax加载json数据中文乱码的解决方法:springmvc配置
一.问题描述 使用zTree的异步刷新父级菜单时,服务器返回中文乱码,但项目中使用了SpringMvc,已经对中文乱码处理,为什么还会出现呢? 此处为的异步请求的配置: async: { enable ...
- springMVC返回json数据乱码问题及@RequestMapping 详解
原文地址:https://blog.csdn.net/u010127245/article/details/51774074 一.@RequestMapping RequestMapping是一个用来 ...
- springMVC返回json数据乱码问
在springMVC controller中返回json数据出现乱码问题,因为没有进行编码,只需要简单的注解就可以了 在@RequestMapping()中加入produces="text/ ...
- HttpClient 模拟发送Post和Get请求 并用fastjson对返回json字符串数据解析,和HttpClient一些参数方法的deprecated(弃用)的综合总结
最近在做一个接口调用的时候用到Apache的httpclient时候,发现引入最新版本4.5,DefaultHttpClient等老版本常用的类已经过时了,不推荐使用了:去官网看了一下在4.3之后就抛 ...
- spring mvc返回json字符串的方式
spring mvc返回json字符串的方式 方案一:使用@ResponseBody 注解返回响应体 直接将返回值序列化json 优点:不需要自己再处理 步骤一:在spring- ...
随机推荐
- 在moba游戏里面模拟实现绝地求生毒雾圈功能
---恢复内容开始--- 已经有很长一段时间没做项目了上半年大多数时间都荒废在王者荣耀,哈哈,S8赛季也上了王者,美滋滋 转回正题,公司需要开个新项目,需要把原有的moba游戏,改成类似绝地求生那玩法 ...
- [转载] 网络IO模型
转载自http://blog.csdn.net/zhoudaxia/article/details/8974779 同步(synchronous) IO和异步(asynchronous) IO,阻塞( ...
- Android隐藏软键盘
1,用java代码隐藏: /**隐藏软键盘**/ View view = getWindow().peekDecorView(); if (view != null) { ...
- JMS学习之路(一):整合activeMQ到SpringMVC 转载:http://www.cnblogs.com/xiaochangwei/p/5426639.html
JMS的全称是Java Message Service,即Java消息服务.它主要用于在生产者和消费者之间进行消息传递,生产者负责产生消息,而消费者负责接收消息.把它应用到实际的业务需求中的话我们可以 ...
- ligerUI---ListBox(列表框可移动)
写在前面: 对于可移动的列表框,ligerui中也对其进行了封装,可以直接照着demo拿来用,不过那都是直接在页面上静态初始化的数据,那么如何从后台获取? 前面有了对ligerui的一些组件的使用经验 ...
- LINQ学习系列-----2.2 迭代器
在学习本篇迭代器之前,强烈建议可以先学习一位具有工匠精神博主的文章,链接如下: 农码一生---先说IEnumerable,我们每天用的foreach你真的懂它吗? 本篇文章,是在该博主博文的基础上再次 ...
- Codeforces543BDestory Roads心得
题目描述: In some country there are exactly n cities and m bidirectional roads connecting the cities. Ci ...
- 三种方法运行python
注:本文基于windows 1.交互式解释器 配置好环境变量后,命令行中打开,输入python即可,Ctrl+Z退出 命令行选项 当从命令行启动Python时,可以给解释器一些选项,如下: -d ...
- 深入理解Java虚拟机---学习感悟以及笔记
一.为什么要学习Java虚拟机? 这里我们使用举例来说明为什么要学习Java虚拟机,其实这个问题就和为什么要学习数据结构和算法是一个道理,工欲善其事,必先利其器.曾经的我经常害怕处理内存溢 ...
- JavaSE初步学习笔记
PS:个人用来随时记录学习的过程,格式比较混乱,仅供个人参考与复习知识点 Dos命令行,课程中常见的命令 Dir:列出当前目录下包含的文件 Md:在当前目录下创建文件 Rd:在当前目录下删除指定文件夹 ...