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 相关文章推荐
通过MSXML2自动获取QQ个人头像及在线情况(给初学者)
Jan 22 Javascript
基于jQuery的日期选择控件
Oct 27 Javascript
jQuery Clone Bug解决代码
Dec 22 Javascript
jquery时间下拉框小例子
Apr 15 Javascript
js对象与打印对象分析比较
Apr 23 Javascript
jquery中文乱码的多种解决方法
Jun 21 Javascript
Javascript delete 引用类型对象
Nov 01 Javascript
js浮点数保留两位小数点示例代码(四舍五入)
Dec 26 Javascript
js文件Cookie存取值示例代码
Feb 20 Javascript
分享十五款 jQuery 社交网络分享插件
May 16 Javascript
使用JavaScript实现连续滚动字幕效果的方法
Jul 07 Javascript
jquery实现移动端点击图片查看大图特效
Sep 11 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 定义404页面的实现代码
2012/11/19 PHP
PHP面向对象程序设计之对象生成方法详解
2016/12/02 PHP
浅谈PHPANALYSIS提取关键字
2019/03/08 PHP
jQuery实现的类flash菜单效果代码
2010/05/17 Javascript
js函数返回多个返回值的示例代码
2013/11/05 Javascript
iframe窗口高度自适应的实现方法
2014/01/08 Javascript
jQuery操作CheckBox的方法介绍(选中,取消,取值)
2014/02/04 Javascript
javascript复制粘贴与clipboardData的使用
2014/10/16 Javascript
Nodejs学习笔记之测试驱动
2015/04/16 NodeJs
整理关于Bootstrap过渡动画的慕课笔记
2017/03/29 Javascript
JS仿Base.js实现的继承示例
2017/04/07 Javascript
Angular排序实例详解
2017/06/28 Javascript
如何通过非数字与字符的方式实现PHP WebShell详解
2017/07/02 Javascript
微信小程序实现九宫格抽奖
2020/04/15 Javascript
浅谈Vue的响应式原理
2019/05/30 Javascript
在vue中使用echarts(折线图的demo,markline用法)
2020/07/20 Javascript
Vue-router编程式导航的两种实现代码
2021/03/04 Vue.js
[36:41]完美世界DOTA2联赛循环赛FTD vs Magma第一场 10月30日
2020/10/31 DOTA
Python中多线程的创建及基本调用方法
2016/07/08 Python
Windows上使用Python增加或删除权限的方法
2018/04/24 Python
python将字符串以utf-8格式保存在txt文件中的方法
2018/10/30 Python
Python 堆叠柱状图绘制方法
2019/07/29 Python
Django 实现Admin自动填充当前用户的示例代码
2019/11/18 Python
python tkiner实现 一个小小的图片翻页功能的示例代码
2020/06/24 Python
python中编写函数并调用的知识点总结
2021/01/13 Python
阿里云:Aliyun.com
2017/02/15 全球购物
Europcar意大利:汽车租赁
2019/07/07 全球购物
Java基础知识面试要点
2016/07/29 面试题
应届毕业生求职信范文分享
2013/12/26 职场文书
公司总经理任命书
2014/06/05 职场文书
四风问题自我剖析材料
2014/10/07 职场文书
2015年母亲节活动总结
2015/02/10 职场文书
2015年化验员工作总结
2015/04/10 职场文书
Python 数据可视化之Seaborn详解
2021/11/02 Python
【海涛教你打DOTA】死灵飞龙第一视角解说
2022/04/01 DOTA
天谕手游15杯全调酒配方和调酒券的获得方式
2022/04/06 其他游戏