我想从我的列表中得到一个csv文件。 这是我的名单:
temp = ['سلام' , 'چطوری' ]
名单上的成员用波斯语。 我试图通过以下代码获取csv文件:
^{pr2}$但终端给我的错误是: UnicodeEncodeError:“ascii”编解码器无法对位置0中的字符u'\u06a9'进行编码:序号不在范围内(128)
如何解决它并获得我的csv文件?在
附言 实际上,当我打印temp时,我看到了以下字符串:
[u'\u06a9\u0627\u062e \u0645\u0648\u0632\u0647 \u06af\u0644\u0633\u062a\u0627\u0646 | Golestan Palace', u'\u062a\u0647\u0631\u0627\u0646', u'\u062a\u0647\u0631\u0627\]
但当我给临时工打电话时,我得到的是:
کاخ موزه گلستان | Golestan Palace
如何解决它并获得我的csv文件?在
为什么有时候python会对我的数据进行编码,而有时候却不编码呢?在
在另一个回答中,您说您使用的是python2.7。摘录自Python Standard Library Reference Manual - csv module:
csv模块不直接支持Unicode的读写,但是它是8位的,除了ASCII-NUL字符的一些问题之外。因此,只要避免像UTF-16那样使用NULs的编码,就可以编写处理编码和解码的函数或类。建议使用UTF-8。
同一段为您提供了一个可用于处理unicode数据的类的示例:
但您也可以尝试更简单的代码:
^{pr2}$如果temp是unicode字符串的列表
或者:
如果temp是unicode字符串列表
python2中的
csv
库无法处理Unicode数据。这在Python3中已修复,但不会进行后端口移植。但是,有一个替换的第三方库可以解决这个问题。在请尝试改用UnicodeCSV。在
相关问题 更多 >
编程相关推荐