Python使用utf-8读取JSON文件出现乱码问题求助
解决JSON文件UTF-8乱码问题
你的问题根源是JSON文件中的文本被双重编码了:原本的UTF-8越南语字符被先编码成字节,再把这些字节以Unicode转义序列(比如\u00c3\u00a0)的形式写入JSON。直接用utf-8解码会导致二次解码,最终出现乱码。
修复代码
import json with open('message_1.json', 'r', encoding='utf-8') as file: raw_content = file.read() # 将Unicode转义序列还原为字节,再用UTF-8解码得到正确字符串 corrected_content = raw_content.encode('utf-8').decode('unicode-escape') data = json.loads(corrected_content) print('message', data)
关键说明
- 原JSON里的
\u00c3\u00a0是UTF-8编码"à"后的字节(b'\xc3\xa0')被转义成Unicode序列,必须先把这些转义序列还原成原始字节,再用UTF-8解码才能得到正确的越南语字符。 with语句会自动处理文件关闭,无需手动调用file.close()。
内容的提问来源于stack exchange,提问作者famfamfam
相关产品推荐
相关产品推荐

