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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM