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 学习笔记一
Apr 07 Javascript
开发 Internet Explorer 右键功能表(ContextMenu)
Jul 03 Javascript
Jquery Ajax方法传值到action的方法
May 11 Javascript
Javascript this 关键字 详解
Oct 22 Javascript
PHP守护进程实例
Mar 06 Javascript
浅谈JavaScript对象的创建方式
Jun 13 Javascript
JavaScript对象数组如何按指定属性和排序方向进行排序
Jun 15 Javascript
基于vue-draggable 实现三级拖动排序效果
Jan 10 Javascript
jQuery 选择器用法实例分析【prev + next】
May 22 jQuery
vue如何在用户要关闭当前网页时弹出提示的实现
May 31 Javascript
React倒计时功能实现代码——解耦通用
Sep 18 Javascript
JavaScript实现网页留言板功能
Nov 23 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得到某段时间区间的时间戳 php定时任务
2012/04/12 PHP
PHP 获取文件权限函数介绍
2013/07/11 PHP
php中namespace use用法实例分析
2016/01/22 PHP
程序员的表白神器“520”大声喊出来
2016/05/20 PHP
PHP实现的Redis多库选择功能单例类
2017/07/27 PHP
javascript 拖动表格行实现代码
2011/05/05 Javascript
jquery利用event.which方法获取键盘输入值的代码
2011/10/09 Javascript
JS TextArea字符串长度限制代码集合
2012/10/31 Javascript
JS 精确统计网站访问量的实例代码
2013/07/05 Javascript
Bootstrap每天必学之标签页(Tab)插件
2020/08/09 Javascript
jQuery webuploader分片上传大文件
2016/11/07 Javascript
Async Validator 异步验证使用说明
2017/07/03 Javascript
jQuery实现的鼠标响应缓冲动画效果示例
2018/02/13 jQuery
JS实现运动缓冲效果的封装函数示例
2018/02/18 Javascript
vue实现键盘输入支付密码功能
2018/08/18 Javascript
JavaScript进阶(二)词法作用域与作用域链实例分析
2020/05/09 Javascript
Python函数中的函数(闭包)用法实例
2016/03/15 Python
Python使用Scrapy爬虫框架全站爬取图片并保存本地的实现代码
2018/03/04 Python
Pycharm 实现下一个文件引用另外一个文件的方法
2019/01/17 Python
使用Python实现将list中的每一项的首字母大写
2019/06/11 Python
python常用函数与用法示例
2019/07/02 Python
python打印9宫格、25宫格等奇数格 满足横竖斜相加和相等
2019/07/19 Python
Python 基于FIR实现Hilbert滤波器求信号包络详解
2020/02/26 Python
15行Python代码实现免费发送手机短信推送消息功能
2020/02/27 Python
Python3.7 读取音频根据文件名生成脚本的代码
2020/04/07 Python
实例讲解使用CSS实现多边框和透明边框的方法
2015/09/08 HTML / CSS
CSS3中的display:grid,网格布局介绍
2019/10/30 HTML / CSS
全球最大的中文旅行网站:去哪儿网
2017/11/16 全球购物
英国在线花园中心:You Garden
2018/06/03 全球购物
英国电子专家:maplin
2019/09/04 全球购物
戴森香港官方网站:Dyson香港
2021/02/11 全球购物
ECCO俄罗斯官网:北欧丹麦鞋履及皮具品牌
2020/06/26 全球购物
授权委托书范本
2014/04/03 职场文书
基层党员干部四风问题整改方向和措施
2014/09/25 职场文书
奇妙的 CSS shapes(CSS图形)
2021/04/05 HTML / CSS
Python初学者必备的文件读写指南
2021/06/23 Python