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(); }
<%@ page="" language="java" contenttype="text/html; charset=UTF-8" pageencoding="UTF-8">
produces = "text/plain;charset=UTF-8"
in RequestMapping hinzu
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!