【发布时间】:2012-05-15 22:34:32
【问题描述】:
我知道类似的问题已被问过很多次,但严重的是我无法正确实现在 csv 中正确写入的 csv writer(它显示垃圾)。
我正在尝试使用 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,这是不好的。任何人都可以帮助我在这里做错了什么吗?
【问题讨论】:
-
您确定您正在以正确的编码查看 a.csv吗?
-
不,我不确定,我只是打开那个 csv 文件。该怎么做?
-
我使用了excel的文本导入向导,并在那里定义了utf-8编码,数据显示正确。我们可以在代码中定义 csv 文件的编码,这样我就不必使用这个向导了吗?另外,如果我使用 codecs.open 然后我尝试写入 unicode 数据,那么它会导致问题,这里也提到了stackoverflow.com/questions/3085263/…
-
文件的编码似乎没有任何问题。如果您在未设置为 unicode 的地方显示文件,您会收到该错误。例如,在 Linux 机器上,当我的语言环境设置为例如 ASCII 时,如果我尝试在终端上对包含非 ASCII 字符的文件进行分类,我会得到这样的乱码。
-
在大多数编辑器中,您可以在“文件”或“查看”菜单中设置“编码”。例如。在 Scite 中,您可以从 File->Encoding 中选择 utf-8。
标签: python csv python-2.7