Python读取JSON文件时×显示为×的编码问题解决求助
解决UTF-8与Windows-1252编码冲突导致的字符乱码问题
问题根源
你遇到的“×”变成“×”是典型的编码解码不匹配:UTF-8编码的“×”(二进制为0xC3 0x97)被错误地用Windows-1252编码解码,就会显示为“×”。
解决步骤
指定正确编码读取文件:
Python在Windows环境下默认编码是cp1252,读取UTF-8编码的JSON文件时必须显式指定编码:import json with open('你的JSON文件路径.json', encoding='utf-8') as f: json_data = json.load(f)读取后就能正确获取“×”字符,正则匹配直接用
r'×'即可。如果文件本身是Windows-1252编码:
先按原编码读取,再转成UTF-8处理:import json with open('你的JSON文件路径.json', encoding='cp1252') as f: raw_content = f.read() # 转码为UTF-8编码的字符串 utf8_content = raw_content.encode('cp1252').decode('utf-8') json_data = json.loads(utf8_content)验证文件编码:
在PyCharm中打开目标JSON文件,右下角会显示当前文件编码(比如UTF-8或Windows-1252),根据这个结果调整读取时的encoding参数即可。
内容的提问来源于stack exchange,提问作者Brandon Myers
相关产品推荐
相关产品推荐

