在csv中编写unicode数据

时间:2012-05-07 12:03:28

标签: python csv python-2.7

我知道类似的问题已被多次询问但严重的是我无法正确实现在csv中正确写入的csv编写器(它显示垃圾)。

我正试图在official docs中使用UnicodeWriter。

ff = open('a.csv', 'w')
writer = UnicodeWriter(ff)
st = unicode('Displaygrößen', 'utf-8') #gives (u'Displaygr\xf6\xdfen', 'utf-8')
writer.writerow([st])

这不会给我任何解码或编码错误。但是它将单词Displaygrößen写为Displaygrößen并不好。任何人都可以帮助我在这里做错了吗?

2 个答案:

答案 0 :(得分:6)

您正在以UTF-8格式编写文件,但未在csv文件中指明该文件。

您应该在文件开头写入UTF-8标头。加上这个:

ff = open('a.csv', 'w')
ff.write(codecs.BOM_UTF8)

然后你的csv文件应该在程序试图读取之后正确打开。

答案 1 :(得分:0)

使用codecs.open打开文件应该修复它。