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 相关文章推荐
jquery 问答知识整理
Feb 11 Javascript
JavaScript CSS修改学习第一章 查找位置
Feb 19 Javascript
JavaScript移除数组元素减少长度的方法
Sep 05 Javascript
Vue组件选项props实例详解
Aug 18 Javascript
Vue中使用clipboard实现复制功能
Sep 05 Javascript
Vue 框架之键盘事件、健值修饰符、双向数据绑定
Nov 14 Javascript
微信小程序textarea层级过高的解决方法
Mar 04 Javascript
小程序分页实践之编写可复用分页组件
Jul 18 Javascript
解决vue语法会有延迟加载显现{{xxx}}的问题
Nov 14 Javascript
使用Vue生成动态表单
Nov 26 Javascript
JS通过识别id、value值对checkbox设置选中状态
Feb 19 Javascript
JavaScript canvas实现文字时钟
Jan 10 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
深入解析php模板技术原理【一】
2008/01/10 PHP
Fine Uploader文件上传组件应用介绍
2013/01/06 PHP
Javascript load Page,load css,load js实现代码
2010/03/31 Javascript
页面按钮禁用与解除禁用的方法
2014/02/19 Javascript
一张表格告诉你windows.onload()与$(document).ready()的区别
2014/05/16 Javascript
js匿名函数的调用示例(形式多种多样)
2014/08/20 Javascript
生成二维码方法汇总
2014/12/26 Javascript
JavaScript检查数字是否为整数或浮点数的方法
2015/06/09 Javascript
基于Flowplayer打造一款免费的WEB视频播放器附源码
2015/09/06 Javascript
详解javascript函数的参数
2015/11/10 Javascript
javascript中利用柯里化函数实现bind方法【推荐】
2016/04/29 Javascript
bootstrap网页框架的使用方法
2016/05/10 Javascript
详解Node.js中的事件机制
2016/09/22 Javascript
AngularJS自定义指令详解(有分页插件代码)
2017/06/12 Javascript
vue中的计算属性的使用和vue实例的方法示例
2017/12/04 Javascript
vue动画之点击按钮往上渐渐显示出来的实例
2018/09/29 Javascript
JS实现带阴历的日历功能详解
2019/01/24 Javascript
vue 手机物理监听键+退出提示代码
2020/09/09 Javascript
[03:58]2014DOTA2国际邀请赛 龙宝赛后解密DK获胜之道
2014/07/14 DOTA
深入理解python中的浅拷贝和深拷贝
2016/05/30 Python
python使用pymysql实现操作mysql
2016/09/13 Python
Windows 7下Python Web环境搭建图文教程
2018/03/20 Python
Python基于多线程实现ping扫描功能示例
2018/07/23 Python
利用python在excel里面直接使用sql函数的方法
2019/02/08 Python
浅谈Python类中的self到底是干啥的
2019/11/11 Python
Python @property及getter setter原理详解
2020/03/31 Python
numpy实现RNN原理实现
2021/03/02 Python
纯CSS3实现8组超炫酷鼠标滑过图片动画
2016/03/16 HTML / CSS
利用CSS3伪元素实现逐渐发光的方格边框
2017/05/07 HTML / CSS
周年庆典主持词
2014/04/02 职场文书
小学生评语集锦
2014/04/18 职场文书
淘宝店策划方案
2014/06/07 职场文书
2014年管理工作总结
2014/11/22 职场文书
高中升旗仪式主持词
2015/07/03 职场文书
2015双创工作总结
2015/07/24 职场文书
关于html选择框创建占位符的问题
2021/06/09 HTML / CSS