【发布时间】:2012-08-24 04:58:45
【问题描述】:
我有想要写入 CSV 文件的 Unicode 字符串(带有日文字符)。
但是,BOM 似乎没有正确编写,就像第一行中的字符串""。这会导致 Excel 无法正确显示日文字符。用 Notepad++ 打开 CSV 时,字符显示正确。
fileObj = codecs.open(filename,"w",'utf-8')
fileObj.write(codecs.BOM_UTF8)
c = u';'
for s in stringsToWrite:
line = e.someUnicodeString
fileObj.write(line)
fileObj.close()
【问题讨论】:
-
"" 是 BOM,当错误地解释为 Latin-1 时。你如何检查结果?此外,众所周知,Excel 的编码很烂。
-
不鼓励使用 UTF-8 BOM 吗?
-
@InternetSeriousBusiness 我确实不鼓励这样做,但微软不会听我的。
-
Excel 是一种痛苦。您是对的,您确实需要指定 BOM,但是,默认情况下,Excel 会以您机器的默认编码(几乎肯定不是 utf8)加载文件。您必须导入它并手动选择正确的编码 UTF8,并使用 BOM。
标签: python unicode utf-8 byte-order-mark