개인 프로젝트에서layui의 데이터 형식을 사용하여 데이터를 얻을 때 한자가 물음표로 변경되는 문제가 발생하지 않는 것으로 나타났습니다
나중에 프로젝트를 변경했는데 Done? 페이지에서 반환된 json 데이터가 중국어로 변경된 것을 발견했습니다. ? ? 물음표.
그래서 문제의 원인을 조사하기 시작했습니다. 먼저 jsp 페이지 헤더가 UTF-8 인코딩을 사용하는지 확인하세요.
<%@ page="" language="java" contenttype="text/html; charset=UTF-8" pageencoding="UTF-8">
페이지 문제가 아니므로 이전 배경 코드일 것입니다. is:
/** * 获取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(); }
확인 결과, 다음 코드에 response.setContentType("text/html;charset=utf-8");을 추가한 후
/** * 获取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(); }
페이지에 전달되면 중국어 문자가 깨져 표시되지 않는 것으로 나타났습니다. 나타납니다
나중 프로젝트의 원래 springmvc 구성 파일에는 관련 구성이 없습니다. 이전 개인 프로젝트에는 다음 구성이 있습니다.
<%@ page="" language="java" contenttype="text/html; charset=UTF-8" pageencoding="UTF-8">
글쎄, 함정을 밟고 공유했습니다.
RequestMapping에
produces = "text/plain;charset=UTF-8"
를 추가하세요. 따라서 "java가 json 요청 중국어를 물음표로 반환하는 문제"를 해결하는 방법에 대해 모두가 더 깊이 이해하고 있다고 생각합니다. 실제로! 더 많은 관련 콘텐츠를 보려면 관련 채널에 들어가 문의하세요.
위 내용은 Java가 중국어로 json 요청을 반환하고 이를 물음표로 바꿀 때 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!