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 14 Javascript
jquery dialog open后,服务器端控件失效的快速解决方法
Dec 19 Javascript
node.js中的buffer.Buffer.byteLength方法使用说明
Dec 10 Javascript
JavaScript数据结构与算法之集合(Set)
Jan 29 Javascript
体验jQuery和AngularJS的不同点及AngularJS的迷人之处
Feb 02 Javascript
判断js的Array和Object的实现方法
Aug 29 Javascript
JavaScript和jQuery获取input框的绝对位置实现方法
Oct 13 Javascript
javascript基于定时器实现进度条功能实例
Oct 13 Javascript
vue+element-ui实现表格编辑的三种实现方式
Oct 31 Javascript
vue的for循环使用方法
Feb 12 Javascript
JavaScript惰性载入函数实例分析
Mar 27 Javascript
微信用户访问小程序的登录过程详解
Sep 20 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/10/09 PHP
WINXP下apache+php4+mysql
2006/11/25 PHP
PHP写杨辉三角实例代码
2011/07/17 PHP
使用pthreads实现真正的PHP多线程(需PHP5.3以上版本)
2014/05/05 PHP
php实现将Session写入数据库
2015/07/26 PHP
CodeIgniter记录错误日志的方法全面总结
2016/05/17 PHP
php微信开发之批量生成带参数的二维码
2016/06/26 PHP
基于PHP实现短信验证码接口(容联运通讯)
2016/09/06 PHP
PHP文件上传、客户端和服务器端加限制、抓取错误信息、完整步骤解析
2017/01/12 PHP
DHTML Slide Show script图片轮换
2008/03/03 Javascript
jquery中输入验证中一个不错的效果
2010/08/21 Javascript
JS小功能(button选择颜色)简单实例
2013/11/29 Javascript
jQuery获得内容和属性示例代码
2014/01/16 Javascript
js识别uc浏览器的代码
2015/11/06 Javascript
手机图片预览插件photoswipe.js使用总结
2016/08/25 Javascript
JavaScript数据结构之链表的实现
2017/03/19 Javascript
AngularJS日程表案例详解
2017/08/15 Javascript
微信小程序实现转盘抽奖
2020/09/21 Javascript
利用Python开发微信支付的注意事项
2016/08/19 Python
Python实现的多线程同步与互斥锁功能示例
2017/11/30 Python
python利用requests库模拟post请求时json的使用教程
2018/12/07 Python
pytorch获取vgg16-feature层输出的例子
2019/08/20 Python
详解numpy矩阵的创建与数据类型
2019/10/18 Python
numpy.array 操作使用简单总结
2019/11/08 Python
python kafka 多线程消费者&amp;手动提交实例
2019/12/21 Python
Python3 xml.etree.ElementTree支持的XPath语法详解
2020/03/06 Python
ASICS印度官方网站:日本专业运动品牌
2020/06/20 全球购物
美国家居装饰店:Z Gallerie
2020/12/28 全球购物
《王二小》教学反思
2014/02/27 职场文书
2014法制宣传日活动总结
2014/07/09 职场文书
口才训练演讲稿范文
2014/09/16 职场文书
执行力心得体会范文
2016/01/11 职场文书
2019年浪漫婚礼证婚词
2019/06/27 职场文书
nginx简单配置多个server的方法
2021/03/31 Servers
MySQL为id选择合适的数据类型
2021/06/07 MySQL
redis缓存存储Session原理机制
2021/11/20 Redis