Python写入含变音字符的CSV在Excel中显示异常如何解决?
解决Excel打开UTF-8 CSV文件变音字符乱码的问题
问题原因
Excel直接打开CSV文件时,默认不会自动识别UTF-8编码(除非文件带有UTF-8 BOM头),Windows环境下通常会用系统默认编码(如GBK)解析,导致ä、ö、ü这类变音字符出现乱码。
解决方案
方案1:修改Python代码,写入带BOM的UTF-8文件
将文件编码从utf-8改为utf-8-sig,Python会自动在文件开头添加UTF-8 BOM,Excel能识别这个标识并正确用UTF-8解析内容。
修改后的代码:
import csv import os import sys data = [["äwien", "öbgld", "üktn", "noe", "ooe", "sbg", "stmk", "tirol", "vbg"]] path = os.path.abspath(os.path.dirname(sys.argv[0])) fn = os.path.join(path, "test.csv") # 使用utf-8-sig编码添加BOM with open(fn, 'w', newline='', encoding="utf-8-sig") as f: writer = csv.writer(f, delimiter=";") writer.writerows(data)
方案2:手动用Excel导入CSV文件
如果不想修改代码,可通过Excel的导入功能指定编码:
- 打开Excel,切换到「数据」选项卡
- 点击「自文本/CSV」,选择目标CSV文件
- 在导入窗口中,设置「文件原始格式」为「65001: UTF-8」
- 确认分隔符为分号(;),完成导入即可正常显示变音字符
内容的提问来源于stack exchange,提问作者Rapid1898
相关产品推荐
相关产品推荐

