Maison  >  Article  >  interface Web  >  JQuery obtient de manière asynchrone la solution au retour tronqué chinois value_jquery

JQuery obtient de manière asynchrone la solution au retour tronqué chinois value_jquery

WBOY
WBOYoriginal
2016-05-16 16:17:151023parcourir

En utilisant jqgrid pour obtenir des valeurs de liste de manière asynchrone, j'ai rencontré un problème. Les données obtenues par le serveur à partir de la base de données n'avaient pas de caractères chinois tronqués (les journaux étaient saisis sans caractères tronqués), mais lorsqu'elles étaient transmises de manière asynchrone au client. , des caractères tronqués sont apparus. Le côté serveur a été codé (codage UTF-8). Au début, j'ai toujours soupçonné qu'il s'agissait d'un problème avec le client. Par exemple, le codage entre le client et le serveur était incohérent. J'ai également soupçonné qu'il manquait la fonction de l'outil jqGrid : "application/x-www-form-. urlencoded; charset=utf-8", etc. etc.

Le résultat n'était ni l'un ni l'autre, et j'ai lutté pendant plusieurs heures. Plus tard, après avoir été rappelé par Daniel, j'ai découvert que le code d'origine était toujours côté serveur, et c'était un oubli.

@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 &#63; 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();
  }
Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn