ajax返回json字符串,前端显示中文乱码问题解决
今天在后台取出数据传给前端时展示的时候,发现中文乱码,在后台打断点 debug 调试发现返回时显示还是正常的,但是到前端发现乱码,由此知道是在返回的过程中发生了乱码问题。
在控制台输出数据
checked: false
icon: ""
id: 2
name: "????"
nocheck: false
open: true
pId: 1
pagetype: 0
项目环境是 SSM,模板引擎使用的是 freemarker,在 Spring MVC 中配置的编码为 UTF-8,后来查找资料发现了问题所在,因为在 controller 中返回 json 用了 @ResponseBody,而 Spring 源码中 @ResponseBody 的实现类发现其默认的编码是 iso-8859-1,而项目用的编码为 UTF-8,所以传中文会出现乱码。
// 解决前
@ResponseBody
@RequestMapping(value = "/tabledata", method = {RequestMethod.GET})
// 解决后
@ResponseBody
@RequestMapping(value = "/tabledata", method = {RequestMethod.GET})
参考:
https://www.cnblogs.com/deolin/p/7866398.html
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步