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的ajax功能实现web service的json转化
Aug 29 Javascript
ExtJS DOM元素操作经验分享
Aug 28 Javascript
javascript针对不确定函数的执行方法
Dec 16 Javascript
分享js粘帖屏幕截图到web页面插件screenshot-paste
Aug 21 Javascript
jQuery拖拽通过八个点改变div大小
Nov 29 Javascript
jQuery实现圣诞节礼物传送(花式轮播)
Dec 25 Javascript
BetterScroll 在移动端滚动场景的应用
Sep 18 Javascript
JavaScript对象的浅拷贝与深拷贝实例分析
Jul 25 Javascript
JavaScript递归函数定义与用法实例分析
Jan 24 Javascript
Node.js折腾记一:读指定文件夹,输出该文件夹的文件树详解
Apr 20 Javascript
react MPA 多页配置详解
Oct 18 Javascript
如何使用CocosCreator对象池
Apr 14 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通用检测函数集合
2006/11/25 PHP
DEDE采集大师官方留后门的删除办法
2011/01/08 PHP
[原创]PHPCMS遭遇会员投稿审核无效的解决方法
2017/01/11 PHP
JS IE和FF兼容性问题汇总
2009/02/09 Javascript
juqery 学习之三 选择器 简单 内容
2010/11/25 Javascript
深入理解JavaScript系列(6) 强大的原型和原型链
2012/01/15 Javascript
getElementByIdx_x js自定义getElementById函数
2012/01/24 Javascript
Javascript this 的一些学习总结
2012/08/02 Javascript
让table变成exls的示例代码
2014/03/24 Javascript
js判断元素是否隐藏的方法
2014/06/09 Javascript
Angular用来控制元素的展示与否的原生指令介绍
2015/01/07 Javascript
javascript使用appendChild追加节点实例
2015/01/12 Javascript
JavaScript快速切换繁体中文和简体中文的方法及网站支持简繁体切换的绝招
2016/03/07 Javascript
原生javascript+css3编写的3D魔方动画旋扭特效
2016/03/14 Javascript
整理关于Bootstrap表单的慕课笔记
2017/03/29 Javascript
使用nodeJs来安装less及编译less文件为css文件的方法
2017/11/20 NodeJs
微信小程序实现打开内置地图功能【附源码下载】
2017/12/07 Javascript
微信小程序按钮去除边框线分享页面功能
2018/08/27 Javascript
Nuxt v-bind绑定img src不显示的解决
2019/12/05 Javascript
vue 根据选择的月份动态展示日期对应的星期几
2021/02/06 Vue.js
Python中自定义函数的教程
2015/04/27 Python
python模块之time模块(实例讲解)
2017/09/13 Python
Python动刷新抢12306火车票的代码(附源码)
2018/01/24 Python
Python实现的逻辑回归算法示例【附测试csv文件下载】
2018/12/28 Python
python3 动态模块导入与全局变量使用实例
2019/12/22 Python
世界上最悠久的自行车制造商:Ribble Cycles
2017/03/18 全球购物
Raleigh兰令自行车美国官网:英国凤头牌自行车
2018/01/08 全球购物
碧欧泉Biotherm加拿大官方网站:法国高端护肤品牌
2019/10/18 全球购物
Booking.com亚太地区:Booking.com APAC
2020/02/07 全球购物
Ray-Ban雷朋奥地利官网:全球领先的太阳眼镜品牌
2020/10/12 全球购物
蜜蜂引路教学反思
2014/02/04 职场文书
文明礼貌演讲稿
2014/05/12 职场文书
征兵宣传标语
2014/06/20 职场文书
个人授权委托书范本
2014/09/14 职场文书
python爬虫--selenium模块
2021/03/31 Python
Python 中的 copy()和deepcopy()
2021/11/07 Python