Python脚本生成字典文件后导入报错:UTF-8解码失败问题排查
问题原因与解决办法
核心原因
你遇到的解码错误是因为新生成的languages.py文件编码不是UTF-8,Python导入时默认用UTF-8解码,而文件里的字符(比如ù)是用Latin-1(ISO-8859-1)编码的(对应字节0xf9),导致解码失败。
具体解决步骤
CSV读写强制用UTF-8编码
用pandas处理CSV时,必须显式指定编码,避免系统默认编码干扰:# 导出CSV df.to_csv('languages.csv', encoding='utf-8', index=False) # 读取CSV df = pd.read_csv('languages.csv', encoding='utf-8')生成新
.py文件时指定UTF-8写入
写入新的languages.py时,一定要明确设置编码为UTF-8,不要依赖系统默认:# 假设dict_data是从CSV还原的字典 with open('new_languages.py', 'w', encoding='utf-8') as f: f.write(f"lang_dict = {dict_data}")修复已损坏的文件
如果已经生成了有问题的文件,可以用VS Code等编辑器打开:- 右下角点击当前编码(比如显示
ISO-8859-1) - 选择"通过编码重新打开",选
ISO-8859-1 - 再选择"通过编码保存",选
UTF-8
- 右下角点击当前编码(比如显示
验证字典字符
检查原字典里的特殊字符(比如带重音的字母),确保在CSV转换过程中没有被乱码。如果原字典本身有编码问题,要先统一转成UTF-8再处理。
内容的提问来源于stack exchange,提问作者Alessandro Capitani
相关产品推荐
相关产品推荐

