Heim > Java > javaLernprogramm > Hauptteil

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

WBOY
Freigeben: 2023-04-15 10:15:15
nach vorne
1910 Leute haben es durchsucht

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">
Nach dem Login kopieren

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 dem Login kopieren

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();  
                 }
Nach dem Login kopieren
# 🎜🎜#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">
Nach dem Login kopieren

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"
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!