Python中使用Pandas写入CSV文件时日语字符乱码问题求助
解决Pandas写入CSV时日语字符乱码的问题
这个问题我之前也踩过坑!本质原因是Windows环境下的Excel默认不会自动识别无BOM的UTF-8编码,它会用系统默认的编码(比如GBK)去解析文件,把日语的UTF-8字节错误解码,就出现了你看到的乱码。
给你两个靠谱的解决方案:
方案一:使用带BOM的UTF-8编码(推荐)
直接把encoding='utf-8'改成encoding='utf-8-sig',这是带BOM标记的UTF-8格式,Excel能正确识别它,同时其他现代文本编辑器也能正常读取:
def write_csv(columns, data): df = pd.DataFrame(data, columns=columns) df.to_csv("..\\Report\\Report.csv", encoding='utf-8-sig') write_csv(["法人番号", "法人名称", "法人名称カナ"], [])
方案二:使用Shift-JIS编码(兼容旧场景)
如果你的需求是要兼容只支持Shift-JIS的旧软件,可以指定编码为shift_jis,日语常用字符都能正常存储:
def write_csv(columns, data): df = pd.DataFrame(data, columns=columns) df.to_csv("..\\Report\\Report.csv", encoding='shift_jis') write_csv(["法人番号", "法人名称", "法人名称カナ"], [])
注意:Shift-JIS对一些特殊字符(比如部分emoji)支持不好,如果你的数据里有这类内容,优先用方案一。
内容的提问来源于stack exchange,提问作者Vũ Minh Vương
相关产品推荐
相关产品推荐

