原来在个人项目时,用layui的数据表格获取数据时,不会出现中文变问号问题
后来换了个项目,发现返回的json数据到页面中文变成了???问号。
于是开始排查问题出现的原因,首先jsp页面头部确保使用了UTF-8编码:
<%@ page="" language="java" contenttype="text/html; charset=UTF-8" pageencoding="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();
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");:
立即学习“Java免费学习笔记(深入)”;
/** * 获取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();
}传到页面就不会出现中文乱码了
Easily find JSON paths within JSON objects using our intuitive Json Path Finder
30
原来的后来的项目的springmvc配置文件里面没有相关的配置,之前的个人项目上有这段配置:
<%@ page="" language="java" contenttype="text/html; charset=UTF-8" pageencoding="UTF-8">
嗯,算是踩了个坑,分享一下
在RequestMapping里加上
produces = "text/plain;charset=UTF-8"

到此,相信大家对“java返回json请求中文变成问号怎么解决”有了更深的了解,不妨来实际操作一番吧!这里是本站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号