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 判断中文字符长度的函数代码
Aug 27 Javascript
struts2+jquery组合验证注册用户是否存在
Apr 30 Javascript
select多选 multiple的使用示例
Jun 16 Javascript
JavaScript实现自动消除按钮功能的方法
Aug 05 Javascript
jQuery取得iframe中元素的常用方法详解
Jan 14 Javascript
js获取浏览器高度 窗口高度 元素尺寸 偏移属性的方法
Nov 21 Javascript
TypeScript入门-基本数据类型
Mar 28 Javascript
JS 组件系列之Bootstrap Table的冻结列功能彻底解决高度问题
Jun 30 Javascript
一步步教会你微信小程序的登录鉴权
Apr 09 Javascript
vue-cli3.0 特性解读
Apr 22 Javascript
jQuery层叠选择器用法实例分析
Jun 28 jQuery
JS中比Switch...Case更优雅的多条件判断写法
Sep 05 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 Ajax乱码
2008/04/09 PHP
火车头discuz6.1 完美采集的php接口文件
2009/09/13 PHP
Chrome Web App开发小结
2014/09/04 PHP
浅谈ThinkPHP5.0版本和ThinkPHP3.2版本的区别
2017/06/17 PHP
详解Laravel设置多态关系模型别名的方式
2019/10/17 PHP
javascript各种复制代码收集
2008/09/20 Javascript
JS中confirm,alert,prompt函数区别分析
2011/01/17 Javascript
IE与FireFox的JavaScript兼容问题解决办法
2013/12/31 Javascript
jquery制作居中遮罩层效果分享
2014/02/21 Javascript
PHP使用方法重载实现动态创建属性的get和set方法
2014/11/17 Javascript
JavaScript中的Primitive对象封装介绍
2014/12/31 Javascript
jQuery EasyUI Dialog拖不下来如何解决
2015/09/28 Javascript
jQuery插件FusionWidgets实现的Bulb图效果示例【附demo源码下载】
2017/03/23 jQuery
jQuery实现的下雪动画效果示例【附源码下载】
2018/02/02 jQuery
vue二级路由设置方法
2018/02/09 Javascript
pageGroup.js实现分页功能
2019/07/27 Javascript
详解mpvue开发微信小程序基础知识
2019/09/23 Javascript
详解如何在Javascript和Sass之间共享变量
2019/11/13 Javascript
Python中请使用isinstance()判断变量类型
2014/08/25 Python
详解Python装饰器由浅入深
2016/12/09 Python
python中is与双等于号“==”的区别示例详解
2017/11/21 Python
python实现感知器
2017/12/19 Python
Python实现代码统计工具
2019/09/19 Python
Python ATM功能实现代码实例
2020/03/19 Python
python 安装库几种方法之cmd,anaconda,pycharm详解
2020/04/08 Python
基于OpenCV的路面质量检测的实现
2020/11/04 Python
最新版 Windows10上安装Python 3.8.5的步骤详解
2020/11/28 Python
如何用Django处理gzip数据流
2021/01/29 Python
canvas里面如何基于随机点绘制一个多边形的方法
2018/06/13 HTML / CSS
美国知名的摄影器材销售网站:Adorama
2017/02/01 全球购物
Kangol帽子官网:坎戈尔袋鼠
2018/09/26 全球购物
美国高端牛仔品牌:Silver Jeans
2019/12/12 全球购物
What is the purpose of Void class? Void类的作用是什么?
2016/10/31 面试题
房屋出租协议书
2014/04/10 职场文书
思想政治表现评语
2015/01/04 职场文书
教你解决往mysql数据库中存入汉字报错的方法
2021/05/06 MySQL