zoukankan      html  css  js  c++  java
  • jquery的异步获取返回值为中文时乱码解决方法

    用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+"
     page="+page+"
     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();
    	}
    

      

  • 相关阅读:
    mysql命令集锦
    linux 删除文件名带括号的文件
    linux下的cron定时任务
    struts2文件下载的实现
    贴一贴自己写的文件监控代码python
    Service Unavailable on IIS6 Win2003 x64
    'style.cssText' is null or not an object
    "the current fsmo could not be contacted" when change rid role
    远程激活程序
    新浪图片病毒
  • 原文地址:https://www.cnblogs.com/yuanfy008/p/4258882.html
Copyright © 2011-2022 走看看