JQuery异步获取返回值中文乱码的解决方法


Posted in Javascript onJanuary 29, 2015

用jqgrid异步获取列表值,遇到个问题,服务器端从数据库取到的数据没有出现中文乱码问题(日志打出来是没有乱码的),但是异步传到客户的时候却出现了乱码。 服务器端已经编码过了(UTF-8编码)。开始一直怀疑是客户端的问题,比如客户端和服务器端编码不一致啊,也怀疑是不是jqGrid工具函数中少配了 contentType: "application/x-www-form-urlencoded; charset=utf-8",   等等问题。

结果都不是,纠结了几个小时,后来经过大牛的提醒发现,原来代码还是出在服务器端,疏忽了。

@RequestMapping(value = "/searchUserList.form")
  @ResponseBody
  public void searchUserList(int page, int rows, HttpServletRequest request, HttpServletResponse response) throws IOException{
    System.out.println("idcard="+idCard+"\n page="+page+"\n rows="+rows);
 
    List<User> list = userService.findByIDCard(idCard);
     
    int totalRecord = list.size();
    int totalPage = totalRecord%rows == 0 ? totalRecord/rows : (totalRecord/rows+1);
     
    int index = (page-1)*rows;
    int pageSize = rows;
     
    String json = "{\"total\": \""+totalPage+"\", \"page\": \""+page+"\", \"records\": \""+totalRecord+"\", \"rows\": ["; 
    for (int i = index; i < pageSize + index && i<totalRecord; i++) { 
      User u = list.get(i);
      json += "{\"id\":\"" + u.getUserId() + "\",\"userName\":\""+u.getUserName()+"\",\"idCard\":\""+
      u.getIdCard() +"\",\"userTel\":\""+u.getUserTel()+"\",\"userSex\":\""+u.getUserSex()+
      "\",\"bankCard\":\""+u.getBankCard()+"\",\"cardStatus\":\""+u.getCardSatus()+"\",\"createTime\":\""+
      u.getCreateTime()+"\"}";
      if (i != pageSize + index - 1 && i != totalRecord - 1) { 
        json += ","; 
      } 
    } 
    json += "]}";
    request.setCharacterEncoding("utf-8"); //这里不设置编码会有乱码
    response.setContentType("text/html;charset=utf-8");
    response.setHeader("Cache-Control", "no-cache"); 
    PrintWriter out = response.getWriter(); //输出中文,这一句一定要放到response.setContentType("text/html;charset=utf-8"), response.setHeader("Cache-Control", "no-cache")后面,否则中文返回到页面是乱码 
    out.print(json.toString());
    out.flush();
    out.close();
  }
Javascript 相关文章推荐
JavaScript中使用构造器创建对象无需new的情况说明
Mar 01 Javascript
JS 加入收藏夹的代码(主流浏览器通用)
May 13 Javascript
浏览器的JavaScript引擎的识别方法
Oct 20 Javascript
JS动态添加与删除select中的Option对象(示例代码)
Dec 20 Javascript
jQuery实现带滚动线条导航效果的方法
Jan 30 Javascript
js实现键盘上下左右键选择文字并显示在文本框的方法
May 07 Javascript
canvas实现图像截取功能
Feb 06 Javascript
基于Vuejs和Element的注册插件的编写方法
Jul 03 Javascript
vue移动端实现红包雨效果
Jun 23 Javascript
vue.js 子组件无法获取父组件store值的解决方式
Nov 08 Javascript
JS实现iframe中子父页面跨域通讯的方法分析
Mar 10 Javascript
修改NPM全局模式的默认安装路径的方法
Dec 15 Javascript
AngularJS中的模块详解
Jan 29 #Javascript
jquery结合CSS使用validate实现漂亮的验证
Jan 29 #Javascript
5个数组Array方法: indexOf、filter、forEach、map、reduce使用实例
Jan 29 #Javascript
推荐一个自己用的封装好的javascript插件
Jan 29 #Javascript
js实现点击左右按钮轮播图片效果实例
Jan 29 #Javascript
JavaScript中实现继承的三种方式和实例
Jan 29 #Javascript
javascript面向对象程序设计(一)
Jan 29 #Javascript
You might like
Windows中安装Apache2和PHP4权威指南
2006/11/18 PHP
php字符编码转换之gb2312转为utf8
2013/10/28 PHP
zf框架的session会话周期及次数限制使用示例
2014/03/13 PHP
PHP中使用Imagick操作PSD文件实例
2015/01/26 PHP
zend framework重定向方法小结
2016/05/28 PHP
PHP简单获取随机数的常用方法小结
2017/06/07 PHP
Javascript实例教程(19) 使用HoTMetal(1)
2006/12/23 Javascript
js 去除字符串第一位逗号的方法
2014/06/07 Javascript
使用documentElement正确取得当前可见区域的大小
2014/07/25 Javascript
浅谈Jquery核心函数
2015/06/18 Javascript
用Move.js配合创建CSS3动画的入门指引
2015/07/22 Javascript
window.location.hash知识汇总
2015/11/09 Javascript
解决angular的$http.post()提交数据时后台接收不到参数值问题的方法
2015/12/10 Javascript
基于JS2Image实现圣诞树代码
2015/12/24 Javascript
this,this,再次讨论javascript中的this,超全面(经典)
2016/01/05 Javascript
Hammer.js+轮播原理实现简洁的滑屏功能
2016/02/02 Javascript
jquery遍历标签中自定义的属性方法
2016/09/17 Javascript
json定义及jquery操作json的方法
2016/09/29 Javascript
jquery DataTable实现前后台动态分页
2017/06/17 jQuery
vue.js 使用axios实现下载功能的示例
2018/03/05 Javascript
vue实现学生录入系统之添加删除功能
2018/07/11 Javascript
swiper4实现移动端导航切换
2020/10/16 Javascript
[02:55]2018DOTA2国际邀请赛勇士令状不朽珍藏Ⅲ饰品一览
2018/08/01 DOTA
详细解读Python的web.py框架下的application.py模块
2015/05/02 Python
python opencv实现图片旋转矩形分割
2018/07/26 Python
在python中pandas的series合并方法
2018/11/12 Python
python aiohttp的使用详解
2019/06/20 Python
C#面试题
2016/05/06 面试题
优秀教师工作感言
2014/02/16 职场文书
课程改革实施方案
2014/03/16 职场文书
党员承诺书怎么写
2014/05/20 职场文书
反四风对照检查材料思想汇报
2014/09/16 职场文书
义诊活动总结
2015/02/04 职场文书
小学教师见习总结
2015/06/23 职场文书
家长必看:义务教育,不得以面试 评测等名义选拔学生
2019/07/09 职场文书
浅谈 JavaScript 沙箱Sandbox
2021/11/02 Javascript