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 相关文章推荐
硬盘浏览程序,保存成网页格式便可使用
Dec 03 Javascript
jQuery判断元素是否是隐藏的代码
Apr 24 Javascript
载入jQuery库的最佳方法详细说明及实现代码
Dec 28 Javascript
给文字加上着重号的JS代码
Nov 12 Javascript
浅谈jQuery中height与width
Jul 06 Javascript
JavaScript中Boolean对象的属性解析
Oct 21 Javascript
JavaScript使用atan2来绘制箭头和曲线的实例
Sep 14 Javascript
React Native中Navigator的使用方法示例
Oct 13 Javascript
一个Vue页面的内存泄露分析详解
Jun 25 Javascript
vue监听键盘事件的快捷方法【推荐】
Jul 11 Javascript
微信小程序授权登录解决方案的代码实例(含未通过授权解决方案)
May 10 Javascript
JS严格模式原理与用法实例分析
Apr 27 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
PHP4.04简明安装
2006/10/09 PHP
浅析php变量作用域的一些问题
2013/08/08 PHP
php实现将wav文件转换成图像文件并在页面中显示的方法
2015/04/21 PHP
解决form中action属性后面?传递参数 获取不到的问题
2017/07/21 PHP
拖动Html元素集合 Drag and Drop any item
2006/12/22 Javascript
ie和firefox不兼容的解决方法集合
2009/04/28 Javascript
jQuery 使用手册(四)
2009/09/23 Javascript
DOM 脚本编程中的兄弟节点
2009/10/31 Javascript
jquery 锁定弹出层实现代码
2010/02/23 Javascript
js中判断文本框是否为空的两种方法
2011/07/31 Javascript
jQuery设置指定网页元素宽度和高度的方法
2015/03/25 Javascript
JS基于面向对象实现的拖拽功能示例
2016/12/20 Javascript
Javascript别踩白块儿(钢琴块儿)小游戏实现代码
2017/07/20 Javascript
使用Ajax和Jquery配合数据库实现下拉框的二级联动的示例
2018/01/25 jQuery
angular6.0开发教程之如何安装angular6.0框架
2018/06/29 Javascript
vue项目设置scrollTop不起作用(总结)
2018/12/21 Javascript
微信小程序如何再次获取用户授权的方法
2019/05/10 Javascript
IE浏览器下JS脚本提交表单后,不能自动提示问题解决方法
2019/06/04 Javascript
vue-cli随机生成port源码的方法
2019/09/02 Javascript
element-ui tooltip修改背景颜色和箭头颜色的实现
2019/12/16 Javascript
JavaScript中的类型检查
2020/02/03 Javascript
Vue 打包的静态文件不能直接运行的原因及解决办法
2020/11/19 Vue.js
Python中条件判断语句的简单使用方法
2015/08/21 Python
PyQt5每天必学之弹出消息框
2018/04/19 Python
Python 中的range(),以及列表切片方法
2018/07/02 Python
对python3中pathlib库的Path类的使用详解
2018/10/14 Python
Python中的十大图像处理工具(小结)
2019/06/10 Python
Python 3 判断2个字典相同
2019/08/06 Python
创业计划书中要认真思考的问题
2013/12/28 职场文书
班干部竞选演讲稿
2014/04/24 职场文书
2014年结对帮扶工作总结
2014/12/17 职场文书
财政局长个人总结
2015/03/04 职场文书
三八妇女节新闻稿
2015/07/17 职场文书
小学教师教育随笔
2015/08/14 职场文书
浅谈如何提高PHP代码的质量
2021/05/28 PHP
OpenCV图像变换之傅里叶变换的一些应用
2021/07/26 Python