Il s'avère que dans un projet personnel, lors de l'utilisation du formulaire de données de layui pour obtenir des données, le problème de la transformation du caractère chinois en point d'interrogation ne se produit pas
Plus tard, j'ai modifié le projet et j'ai constaté que les données json renvoyées étaient devenues chinoises sur la page Terminé ? ? ? point d'interrogation.
Nous avons donc commencé à rechercher la cause du problème. Tout d'abord, assurez-vous que l'en-tête de la page jsp utilise le codage UTF-8 :
<%@ page="" language="java" contenttype="text/html; charset=UTF-8" pageencoding="UTF-8">
Puisqu'il ne s'agit pas d'un problème de page, il doit s'agir d'un problème d'arrière-plan. est :
/** * 获取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(); }
Après vérification, j'ai découvert qu'après avoir ajouté réponse.setContentType("text/html;charset=utf-8"); à ce 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(); }
Lorsqu'il est transmis à la page, les caractères chinois tronqués ne seront pas apparaît
Le fichier de configuration springmvc original du projet ultérieur Il ne contient aucune configuration pertinente. Il y a cette configuration dans le projet personnel précédent :
<%@ page="" language="java" contenttype="text/html; charset=UTF-8" pageencoding="UTF-8">
Eh bien, j'ai marché sur un piège et je l'ai partagé
Ajoutez
produces = "text/plain;charset=UTF-8"
à RequestMapping Par conséquent, je crois que tout le monde a une compréhension plus profonde de "Comment résoudre le problème de "java renvoie la demande json chinoise en point d'interrogation", vous pourriez aussi bien le faire en pratique! Il s'agit de ce site. Pour plus de contenu connexe, vous pouvez accéder aux canaux de demande pertinents. Suivez-nous et continuez à apprendre !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!