Possible Duplicate:
Write to utf-8 file in python
我有Unicode字符串(带日语字符)要写入CSV文件。
然而,BOM似乎并没有像第一行的字符串""
那样正确地编写。这导致Excel无法正确显示日文字符。使用记事本++打开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()
你复制的字符串是UTF-8 BOM。因此,问题不在python代码中,而在其他地方。
好的,您有一个Unicode输出流。
BOM_UTF8是一个字节序列,而不是您希望写入Unicode流的Unicode字符串。Python将使用某些可能不正确的编码从字节自动转换为Unicode。如果默认编码是Windows代码页1252而不是UTF-8,那么您将有效地对BOM进行双重编码,并将其作为

的UTF-8编码。建议将BOM改为Unicode字符:
InternetSeriousBusiness写道:
是的,在大多数情况下,UTF-8伪BOM在很大程度上是一个灾难,但是需要通过Excel的字符集猜测来获取UTF-8。不幸的是,它在Excel中不适用于Mac。另一种可能的方法是使用UTF-16。
相关问题 更多 >
编程相关推荐