关于python:在csv中编写unicode数据

Writing unicode data in csv

我知道类似的问题已经被问过很多次了,但是认真地说,我没有能够正确地实现csv编写器,它以csv格式正确地编写(它显示垃圾)。

我正试图使用官方文件中提到的UnicodeWriter。

1
2
3
4
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,不好用。有人能帮我一下我在这里做错了什么吗??


您正在以UTF-8格式编写一个文件,但您没有在CSV文件中指出这一点。

您应该在文件的开头编写utf-8头文件。添加:

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

之后,你的csv文件应该正确打开,让程序读取它。


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