Heim >Java >javaLernprogramm >So lösen Sie das Problem, wenn Java eine JSON-Anfrage auf Chinesisch zurückgibt und diese in ein Fragezeichen umwandelt

So lösen Sie das Problem, wenn Java eine JSON-Anfrage auf Chinesisch zurückgibt und diese in ein Fragezeichen umwandelt

WBOY
WBOYnach vorne
2023-04-15 09:25:071939Durchsuche

Java gibt JSON zurück und fordert Chinesisch auf, ein Fragezeichen zu werden

Es stellt sich heraus, dass in einem persönlichen Projekt, wenn das Datenformular von Lauii zum Abrufen von Daten verwendet wird, das Problem besteht, dass Chinesisch in Fragezeichen umgewandelt wird nicht auftreten

Später habe ich ein Projekt geändert und festgestellt, dass die zurückgegebenen JSON-Daten auf der Seite in Chinesisch geändert wurden? ? ? Fragezeichen.

Also begann ich, die Ursache des Problems zu untersuchen. Stellen Sie zunächst sicher, dass der JSP-Seitenheader die UTF-8-Codierung verwendet:

<%@ page="" language="java" contenttype="text/html; charset=UTF-8" pageencoding="UTF-8">

Da es sich nicht um ein Seitenproblem handelt , es muss ein Hintergrundproblem sein. Vorher Der Hintergrundcode lautet:

    /**      * 获取json列表      */   
      @ResponseBody  
      @RequestMapping("/getJsonAF02")  
      public void getManyCategory(Page page, HttpServletRequest request,HttpServletResponse response) throws  Exception{       
           logBefore(logger, "列表AF02");    
                // if(!Jurisdiction.buttonJurisdiction(menuUrl, "cha")){return null;}        
               // //校验权限       
                 PageData pd = this.getPageData();     
                 JSONObject jsonObject = new JSONObject();  
                 PrintWriter out = response.getWriter();
                 try { 
                         page.setPd(pd);  
                         page.setCurrentPage(Integer.parseInt(pd.getString("page"))); 
                         pd.put("OPERATION_NUM", "10001"); 
                         ListvarList = af02Service.listForSCJ(page);
                         // 列出AF02列表
                         //前台通过key值获得对应的value值 
                         jsonObject.put("code", 0);  
                         jsonObject.put("msg", "测试"); 
                         jsonObject.put("count",page.getTotalResult());
                         jsonObject.put("data", varList);
                     } catch (Exception e) { 
                      logger.error(e.toString(), e);
                     }  
                      String result = jsonObject.toString(); 
                       out.write(result);
                       out.close(); 
                     }

Nach der Überprüfung habe ich festgestellt, dass „response.setContentType(“text/html;charset=utf-8“); Code:

  /**      * 获取json列表      */ 
      @ResponseBody  
      @RequestMapping("/getJsonAF02")
      public void getManyCategory(Page page, HttpServletRequest request,HttpServletResponse response) throws  Exception{  
             logBefore(logger, "列表AF02");  
             // if(!Jurisdiction.buttonJurisdiction(menuUrl, "cha")){return null;} 
             //校验权限  
               PageData pd = this.getPageData();
               response.setContentType("text/html;charset=utf-8");// 加上这个处理问号 
               JSONObject jsonObject = new JSONObject();
               PrintWriter out = response.getWriter();
               try { 
                   page.setPd(pd); 
                   page.setCurrentPage(Integer.parseInt(pd.getString("page")));
                   pd.put("OPERATION_NUM", "10001");
                   ListvarList = af02Service.listForSCJ(page); 
                   // 列出AF02列表 
                   //前台通过key值获得对应的value值
                   jsonObject.put("code", 0);
                   jsonObject.put("msg", "测试");
                   jsonObject.put("count",page.getTotalResult());
                   jsonObject.put("data", varList); 
               } catch (Exception e) { 
                    logger.error(e.toString(), e); 
                    String result = jsonObject.toString(); 
                    out.write(result);
                    out.close();  
                 }
# 🎜🎜#Beim Hochladen auf die Seite werden keine verstümmelten chinesischen Zeichen angezeigt.

Die SpringMVC-Konfigurationsdatei des späteren Originalprojekts enthält keine relevante Konfiguration Konfiguration im vorherigen persönlichen Projekt:

<%@ page="" language="java" contenttype="text/html; charset=UTF-8" pageencoding="UTF-8">

Nun, ich bin in eine Falle getreten, teile sie

json kehrt zum Chinesischen zurück und ist voller Fragezeichen

#🎜🎜 #Fügen Sie

produces = "text/plain;charset=UTF-8"

in RequestMapping hinzu

So lösen Sie das Problem, wenn Java eine JSON-Anfrage auf Chinesisch zurückgibt und diese in ein Fragezeichen umwandelt An diesem Punkt glaube ich, dass jeder ein tieferes Verständnis dafür hat, wie man das Problem löst, dass Java eine JSON-Anfrage auf Chinesisch zurückgibt in ein Fragezeichen verwandeln", können Sie es auch in der Praxis tun! Dies ist diese Website. Für weitere verwandte Inhalte können Sie die entsprechenden Kanäle zur Anfrage aufrufen. Folgen Sie uns und lernen Sie weiter!

Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem, wenn Java eine JSON-Anfrage auf Chinesisch zurückgibt und diese in ein Fragezeichen umwandelt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen