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获取iframe中的dom对象(两种方法)
Jul 02 Javascript
如何利用JS通过身份证号获取当事人的生日、年龄、性别
Jan 22 Javascript
基于javascript实现checkbox复选框实例代码
Jan 28 Javascript
JS使用单链表统计英语单词出现次数
Jun 16 Javascript
js中获取时间new Date()的全面介绍
Jun 20 Javascript
JS实现上传图片实时预览功能
May 22 Javascript
AngularJS实现的生成随机数与猜数字大小功能示例
Dec 25 Javascript
Webpack中雪碧图插件使用详解
May 25 Javascript
Node 搭建一个静态资源服务器的实现
May 20 Javascript
解决layui的使用以及针对select、radio等表单组件不显示的问题
Sep 05 Javascript
非常漂亮的js烟花效果
Mar 10 Javascript
vue print.js打印支持Echarts图表操作
Nov 13 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
关于Appserv无法打开localhost问题的解决方法
2009/10/16 PHP
PHP eval函数使用介绍
2013/12/08 PHP
Centos 6.5下PHP 5.3安装ffmpeg扩展的步骤详解
2017/03/02 PHP
PHP实现UTF8二进制及明文字符串的转化功能示例
2017/11/20 PHP
windows系统php环境安装swoole具体步骤
2021/03/04 PHP
编写针对IE的JS代码两种编写方法
2013/01/30 Javascript
Jquery ajax执行顺序 返回自定义错误信息(实例讲解)
2013/11/06 Javascript
jQuery操作元素css样式的三种方法
2014/06/04 Javascript
javascript结合ajax读取txt文件内容
2014/12/05 Javascript
javascript 对象数组根据对象object key的值排序
2015/03/09 Javascript
jQuery统计指定子元素数量的方法
2015/03/17 Javascript
实例代码详解jquery.slides.js
2015/11/16 Javascript
JavaScript sort数组排序方法和自我实现排序方法小结
2016/06/06 Javascript
JS提示:Uncaught SyntaxError: Unexpected token ILLEGAL错误的解决方法
2016/08/19 Javascript
纯JavaScript 实现flappy bird小游戏实例代码
2016/09/27 Javascript
javascript简单进制转换实现方法
2016/11/24 Javascript
js实现简单的获取验证码按钮效果
2017/03/03 Javascript
jQuery实现页面倒计时并刷新效果
2017/03/13 Javascript
jQuery实现的简单图片轮播效果完整示例
2018/02/08 jQuery
JavaScript 异步时序问题
2020/11/20 Javascript
[01:02:20]Mineski vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python使用xmlrpclib模块实现对百度google的ping功能
2015/06/02 Python
Python中死锁的形成示例及死锁情况的防止
2016/06/14 Python
python发送邮件实例分享
2017/07/28 Python
python调用opencv实现猫脸检测功能
2019/01/15 Python
详解Python文件修改的两种方式
2019/08/22 Python
思想汇报范文
2013/11/04 职场文书
《小动物过冬》教学反思
2014/04/17 职场文书
四风问题班子对照检查材料
2014/09/27 职场文书
企业年检委托书范本
2014/10/14 职场文书
2014年第四季度入党积极分子思想汇报(十八届四中全会)
2014/11/03 职场文书
2014年财务人员工作总结
2014/11/11 职场文书
2015年教师党员承诺书
2015/04/27 职场文书
2016年教师节感恩寄语
2015/12/04 职场文书
Nginx进程管理和重载原理详解
2021/04/22 Servers
Python基础之进程详解
2021/05/21 Python