Heim  >  Artikel  >  Web-Frontend  >  JQuery erhält asynchron die Lösung für den verstümmelten chinesischen Rückgabewert value_jquery

JQuery erhält asynchron die Lösung für den verstümmelten chinesischen Rückgabewert value_jquery

WBOY
WBOYOriginal
2016-05-16 16:17:15994Durchsuche

Bei der Verwendung von jqgrid zum asynchronen Abrufen von Listenwerten ist ein Problem aufgetreten. Die vom Server aus der Datenbank abgerufenen Daten enthielten keine verstümmelten chinesischen Zeichen (die Protokolle wurden ohne verstümmelte Zeichen eingegeben), wurden jedoch asynchron an den Client übertragen , erschienen verstümmelte Zeichen. Die Serverseite wurde kodiert (UTF-8-Kodierung). Zuerst hatte ich immer den Verdacht, dass es sich um ein Problem mit dem Client handelte. Beispielsweise war die Codierung zwischen dem Client und dem Server nicht konsistent, und ich vermutete auch, dass der jqGrid-Tool-Funktion der Inhaltstyp „application/x-www-form-“ fehlte. urlencoded; charset=utf-8", usw. usw. Fragen.

Das Ergebnis war weder das eine noch das andere und ich kämpfte mehrere Stunden lang. Nachdem ich von Daniel daran erinnert wurde, stellte ich fest, dass sich der ursprüngliche Code immer noch auf der Serverseite befand und es sich um ein Versehen handelte.

@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();
  }
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn