Ternyata dalam projek peribadi saya, apabila menggunakan borang data layui untuk mendapatkan data, masalah aksara Cina berubah menjadi soalan tanda tidak berlaku
Kemudian saya menukar projek , mendapati bahawa data json yang dikembalikan ditukar kepada bahasa Cina pada halaman? ? ? tanda tanya.
Jadi, kami mula menyiasat punca masalah Pertama, pastikan pengepala halaman jsp menggunakan pengekodan UTF-8:
<%@ page="" language="java" contenttype="text/html; charset=UTF-8" pageencoding="UTF-8">
Memandangkan ia bukan masalah halaman, ia. mestilah masalah latar belakang. Latar belakang sebelumnya Kodnya ialah:
/** * 获取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(); }
Selepas menyemak, saya mendapati bahawa 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(); }
Watak-watak Cina yang kacau-bilau tidak akan muncul apabila dimuat naik ke halaman
Tiada konfigurasi yang berkaitan dalam fail konfigurasi springmvc bagi projek asal kemudiannya projek peribadi:
<%@ page="" language="java" contenttype="text/html; charset=UTF-8" pageencoding="UTF-8">
Nah, saya terpijak perangkap, biar saya kongsikan
Tambah
produces = "text/plain;charset=UTF-8"
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah apabila java mengembalikan permintaan json dalam bahasa Cina dan mengubahnya menjadi tanda tanya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!