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