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

https://www.cnblogs.com/jhcelue/p/6790020.html

https://www.cnblogs.com/jackchensir/p/8532357.html

posted @ 2020-08-22 09:48  此树何时枯  阅读(1012)  评论(0编辑  收藏  举报