Python处理含μ字符的CSV文件保存后出现乱码问题如何解决?
CSV中μ字符在Excel打开乱码的解决方案
问题原因
该乱码由字符编码不匹配导致:
- pandas默认以无BOM的UTF-8编码输出CSV文件
- Windows系统下的Excel默认使用GB2312/ANSI编码读取CSV,无法正确识别无BOM UTF-8编码里的特殊字符(如希腊字母μ),就会出现
�这类乱码
修复方法
方案1(推荐:无需额外操作,Excel直接打开正常)
修改代码中最后保存CSV的行,指定使用带BOM的UTF-8编码输出:
把原代码里的rs.to_csv("check.csv",index=False)
替换为rs.to_csv("check.csv",index=False, encoding='utf_8_sig')
如果读取原始CSV时也出现编码异常,可在pd.read_csv参数中补充指定原文件的编码,例如原文件是UTF-8编码就添加encoding='utf-8',是GBK编码就添加encoding='gbk':
df = pd.read_csv(str(fn), header=None, sep='\n', encoding='utf-8')
方案2(不修改代码,手动导入)
如果不想改动代码,可在打开Excel后按以下步骤导入CSV:
- 点击菜单栏「数据」-「获取外部数据」-「自文本/CSV」
- 选择生成的check.csv文件
- 编码选项手动选择「UTF-8」,完成导入后特殊字符即可正常显示
内容的提问来源于stack exchange,提问作者Lowell Lowellcraft
相关产品推荐
相关产品推荐

