JSON 数据乱码怎么解决?Unicode 编码 \u4e2d\u6587 显示异常排查
调接口时看到\u4e2d\u6587、\u5f20\u4e09,很多人会以为是 JSON 中文乱码。其实多数情况下,这不是乱码,而是 JSON 对 Unicode 字符的合法转义。
{"name":"\u5f20\u4e09","message":"\u4e2d\u6587\u663e\u793a\u5f02\u5e38"}如果这段数据经过JSON.parse后能正常显示中文,说明接口返回本身没有坏。真正要排查的是页面是否把 JSON 字符串当普通文本渲染,或者后端是否多做了一次JSON.stringify。
排查时先看响应头是否包含application/json; charset=utf-8,再看 Network 原始响应和控制台解析结果。如果原始响应是\u4e2d\u6587,解析后是中文,就属于 Unicode 转义;如果页面仍直接展示反斜杠字符串,通常是前端少解析一次或后端二次序列化。
遇到 JSON 格式化、Unicode 转义查看或结构校验问题,可以使用 JSONToolbox 辅助定位。
记住:看到 \u4e2d\u6587 不等于乱码,解析链路错误才是根因。
原文地址:https://juejin.cn/post/7658501804750028834