JSON乱码怎么转换成文字?3种实用方法轻松解决
在开发或数据处理中,你一定遇到过这种情况:打开JSON文件时,看到的不是正常的中文或英文,而是一串像 "\u4e2d\u6587" 或 这样的乱码字符,完全无法直接阅读,其实这不是文件损坏,而是编码格式不匹配导致的,本文将详细解释JSON乱码的原因,并提供3种简单有效的方法,帮你快速将乱码转换成可读文字。
先搞懂:JSON乱码的“元凶”是什么?
JSON本身不指定编码格式,但规范中明确建议使用UTF-8编码(兼容ASCII),乱码的核心原因是读取/保存时编码与实际编码不一致,常见场景有:
- 数据源(如API、数据库)返回的JSON是GBK/GB2312等中文编码,但用UTF-8工具打开;
- 文件保存时被错误编码为ISO-8859-1(西欧编码),而实际内容是UTF-8;
- 程序中处理JSON时,未正确指定编码(如Python的
open()函数未加encoding='utf-8')。
中文“测试”的UTF-8编码是\xe6\xb5\x8b\xe8\x95\x86,如果被错误解析为ISO-8859-1,就会显示为乱码;而Unicode转义序列\u4e2d\u6587是JSON对非ASCII字符的转义表示,直接看就是“乱码”,但实际可通过解析还原。
方法1:用代码解析(Python/Java/JS等通用)
如果你的JSON文件里有Unicode转义序列(如\u4e2d\u6587)或编码错误,用代码解析是最直接的方式,下面以Python为例(其他语言逻辑类似),提供两种常见乱码的解决方案。
场景1:JSON文件内容是Unicode转义序列(如"\u4e2d\u6587")
直接用json.loads()解析即可,Python会自动将转义序列还原成字符。
import json
# 假设JSON文件内容是 '{"name": "\u4e2d\u6587", "desc": "\u6d4b\u8bd5"}'
json_str = '{"name": "\\u4e2d\\u6587", "desc": "\\u6d4b\\u8bd5"}' # 注意:字符串里需要双反斜杠
# 解析JSON
data = json.loads(json_str)
# 输出结果(自动还原为中文)
print(data["name"]) # 输出:中文
print(data["desc"]) # 输出:测试
场景2:JSON文件编码错误(如用UTF-8打开GBK编码的文件)
如果文件本身是GBK编码,但用UTF-8读取,会出现乱码,此时只需用正确编码打开文件,再解析JSON。
import json
# 假设文件是GBK编码,内容是 '{"name": "中文", "desc": "测试"}'
with open("data.json", "r", encoding="gbk") as f: # 指定GBK编码读取
json_str = f.read()
# 解析JSON
data = json.loads(json_str)
# 输出结果(正常显示中文)
print(data["name"]) # 输出:中文
其他语言小贴士:
- Java:用
new String(jsonString.getBytes("ISO-8859-1"), "UTF-8")修复编码,再用JSONObject.parse()解析; - JavaScript:浏览器/Node.js中,JSON.parse()会自动处理Unicode转义,无需额外操作。
方法2:用在线工具快速转换(无代码党福音)
如果你不想写代码,或者只是偶尔需要处理少量JSON乱码,在线JSON解析工具是最佳选择,这些工具能自动识别编码、解析Unicode转义,并格式化输出。
推荐工具:
-
JSON在线解析(https://www.json.cn/):
- 复制乱码JSON内容粘贴到输入框,工具会自动解析Unicode转义(如
\u4e2d\u6587→中文); - 如果仍有乱码,可尝试“编码转换”功能,选择GBK/UTF-8等格式重新解析。
- 复制乱码JSON内容粘贴到输入框,工具会自动解析Unicode转义(如
-
Code Beautify JSON Parser(https://codebeautify.org/jsonparser):
- 支持“Decode Unicode”选项,一键将
\u开头的转义序列还原; - 可直接下载转换后的JSON文件,方便保存。
- 支持“Decode Unicode”选项,一键将
-
国产工具:JSON格式化(https://www.bejson.com/json/):
- 对中文乱码支持友好,会自动检测并修复常见编码问题;
- 提供“JSON转义”和“JSON反转义”功能,双向切换。
使用步骤:
- 打开在线工具,将乱码JSON内容粘贴到输入框;
- 勾选“反转义Unicode”或“编码转换”选项(如有);
- 点击“解析”或“格式化”,右侧会显示可读的JSON内容;
- 复制结果或下载文件即可。
方法3:用文本编辑器直接修复(手动党专属)
如果你只有少量JSON文件,且乱码问题简单(如编码错误),可以用文本编辑器手动调整编码格式。
推荐编辑器:
-
VS Code:
- 打开JSON文件,右下角会显示当前编码(如“UTF-8”或“GBK”);
- 如果编码显示不正确,点击编码名称,选择“保存时重新编码”,选择目标编码(如UTF-8),保存后乱码就会修复。
-
Notepad++:
- 打开文件后,点击菜单栏“编码”,查看当前编码格式;
- 如果是“ANSI”(Windows下可能是GBK),选择“编码→转为UTF-8编码”,保存后文件会转为UTF-8,乱码消失。
-
Sublime Text:
打开文件,右下角显示编码,点击后选择“Save with Encoding”,选择UTF-8或GBK保存即可。
如何预防JSON乱码?治标更治本
与其每次乱码后修复,不如提前做好预防,从源头减少问题:
- 统一使用UTF-8编码:无论是保存JSON文件、还是API返回数据,都明确指定UTF-8编码(如Python中
open("file.json", "w", encoding="utf-8")); - 避免编码混用:不要用GBK保存JSON,也不要用ISO-8859-1处理中文内容;
- 检查数据源编码:从API或数据库获取JSON时,确认对方返回的编码格式(可通过响应头
Content-Type查看,如application/json; charset=utf-8); - 使用JSON库的正确方法:编程时确保用
json.loads()(Python)或JSON.parse()(JS)解析,避免手动处理转义字符。
JSON乱码本质是“编码没对齐”,解决起来并不难:
- 有代码基础:用Python/Java等语言解析,指定正确编码或反转义Unicode;
- 不想写代码:用在线工具一键转换,省时省力;
- 手动修复:用VS Code/Notepad++调整文件编码格式。
预防大于治疗”,统一使用UTF-8编码,就能从根源上避免90%的JSON乱码问题!下次再遇到乱码,别慌,用对方法,3秒就能搞定。



还没有评论,来说两句吧...