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 相关文章推荐
使两个iframe的高度与内容自适应,且相等
Nov 20 Javascript
jQuery 浮动广告实现代码
Dec 25 Javascript
Prototype的Class.create函数解析
Sep 22 Javascript
javascript 实现 秒杀,团购 倒计时展示的记录 分享
Jul 12 Javascript
jquery如何判断某元素是否具备指定的样式
Nov 05 Javascript
JS JQUERY实现滚动条自动滚到底的方法
Jan 09 Javascript
jQuery将所有被选中的checkbox某个属性值连接成字符串的方法
Jan 24 Javascript
vue,angular,avalon这三种MVVM框架优缺点
Apr 27 Javascript
form+iframe解决跨域上传文件的方法
Nov 18 Javascript
浅谈javascript alert和confirm的美化
Dec 15 Javascript
Bootstrap缩略图与警告框学习使用
Feb 08 Javascript
小程序组件之仿微信通讯录的实现代码
Sep 12 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/07/15 PHP
给网站上的广告“加速”显示的方法
2007/04/08 Javascript
JavaScript 滚轮事件使用说明
2010/03/07 Javascript
修复ie8&amp;chrome下window的resize事件多次执行
2011/10/20 Javascript
抛弃Nginx使用nodejs做反向代理服务器
2014/07/17 NodeJs
关于编写性能高效的javascript事件的技术
2014/11/28 Javascript
javascript使用smipleChart实现简单图表
2015/01/02 Javascript
浅谈js中变量初始化
2015/02/03 Javascript
微信企业号开发之微信考勤百度地图定位
2015/09/11 Javascript
JavaScript编程中window的location与history对象详解
2015/10/26 Javascript
教你用javascript实现随机标签云效果_附代码
2016/03/16 Javascript
jquery购物车结算功能实现方法
2020/10/29 Javascript
angular中的http拦截器Interceptors的实现
2017/02/21 Javascript
javascript 判断一个对象为数组的方法
2017/05/03 Javascript
JavaScript实现QQ聊天消息展示和评论提交功能
2017/05/22 Javascript
详谈AngularJs 控制器、数据绑定、作用域
2017/07/09 Javascript
js学习总结之DOM2兼容处理this问题的解决方法
2017/07/27 Javascript
VUE安装使用教程详解
2019/06/03 Javascript
layui实现数据表格点击搜索功能
2020/03/26 Javascript
js回溯法计算最佳旅行线路代码实例
2019/09/11 Javascript
Vue 自定义指令功能完整实例
2019/09/17 Javascript
vue实现表单未编辑或未保存离开弹窗提示功能
2020/04/08 Javascript
使用Python实现简单的服务器功能
2017/08/25 Python
Python基于回溯法解决01背包问题实例
2017/12/06 Python
浅谈python写入大量文件的问题
2018/11/09 Python
Python理解递归的方法总结
2019/01/28 Python
python中对_init_的理解及实例解析
2019/10/11 Python
python numpy实现rolling滚动案例
2020/06/08 Python
CSS3实现10种Loading效果
2016/07/11 HTML / CSS
股东授权委托书范文
2014/09/13 职场文书
建党伟业电影观后感
2015/06/01 职场文书
校园运动会广播稿
2015/08/19 职场文书
sql中mod()函数取余数的用法
2021/05/29 SQL Server
python 经纬度求两点距离、三点面积操作
2021/06/03 Python
用php如何解决大文件分片上传问题
2021/07/07 PHP