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有关的小细节
Apr 02 Javascript
Javascript中的数学函数集合
May 08 Javascript
封装好的省市地区联动控件附下载
Aug 13 Javascript
innerHTML 和 getElementsByName 在IE下面的bug 的解决
Apr 09 Javascript
javascript中substr,substring,slice.splice的区别说明
Nov 25 Javascript
javascript 使用 NodeList需要注意的问题
Mar 04 Javascript
javascript不同类型数据之间的运算的转换方法
Feb 13 Javascript
JS中的phototype详解
Feb 04 Javascript
用vue和node写的简易购物车实现
Apr 25 Javascript
详解webpack打包vue时提取css
May 26 Javascript
vue中v-model对select的绑定操作
Aug 31 Javascript
vue+iview分页组件的封装
Nov 17 Vue.js
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
phpmyadmin中配置文件现在需要绝密的短语密码的解决方法
2007/02/11 PHP
PHP $_FILES函数详解
2011/03/09 PHP
php重定向的三种方法分享
2012/02/22 PHP
解析在PHP中使用全局变量的几种方法
2013/06/24 PHP
PHP对称加密算法(DES/AES)类的实现代码
2017/11/14 PHP
ThinkPHP5.1+Ajax实现的无刷新分页功能示例
2020/02/10 PHP
CSS3画一个阴阳八卦图
2021/03/09 HTML / CSS
firefox插件Firebug的使用教程
2010/01/02 Javascript
Javascript 面向对象 对象(Object)
2010/05/13 Javascript
JQuery触发事件例如click
2013/09/11 Javascript
JS实现金额转换(将输入的阿拉伯数字)转换成中文的实现代码
2013/09/30 Javascript
JS给Array添加是否包含字符串的简单方法
2016/10/29 Javascript
原生js开发的日历插件
2017/02/04 Javascript
JavaScript常用内置对象用法分析
2019/07/09 Javascript
原生JS利用transform实现banner的无限滚动示例代码
2020/06/15 Javascript
详解JS深拷贝与浅拷贝
2020/08/04 Javascript
一篇文章看懂JavaScript中的回调
2021/01/05 Javascript
详解python实现读取邮件数据并下载附件的实例
2017/08/03 Python
浅谈Django的缓存机制
2018/08/23 Python
python中yield的用法详解——最简单,最清晰的解释
2019/04/04 Python
详解Django模版中加载静态文件配置方法
2019/07/21 Python
python+opencv3生成一个自定义纯色图教程
2020/02/19 Python
python Django 反向访问器的外键冲突解决
2020/05/20 Python
python中Ansible模块的Playbook的具体使用
2020/05/28 Python
Python实现文件压缩和解压的示例代码
2020/08/12 Python
Java Unsafe类实现原理及测试代码
2020/09/15 Python
澳大利亚工具仓库:Tools Warehouse
2018/10/15 全球购物
捷克移动配件网上商店:ProMobily.cz
2019/03/15 全球购物
客服端调用EJB对象的几个基本步骤
2012/01/15 面试题
大学生评语大全
2014/04/18 职场文书
中层干部培训方案
2014/06/16 职场文书
成绩单家长意见
2015/06/03 职场文书
小组口号霸气押韵
2015/12/24 职场文书
如何制定一份可行的计划!
2019/06/21 职场文书
vue Element-ui表格实现树形结构表格
2021/06/07 Vue.js
vue实现登陆页面开发实践
2022/05/30 Vue.js