我想用
https://pypi.python.org/pypi/dbf
读取数据库文件。我试着把记录打印如下:
for record in race_db:
print record
这会给我一个错误信息
UnicodeDecodeError:“ascii”编解码器无法解码位置4中的字节0xc9:序号
不在范围内(128)
所以我试图映射到unicode
string_record = [unicode(item) for item in record]
同样的事情。utf-8型:
string_record = [unicode(item, "utf8") for item in record]
类型错误:强制转换为Unicode:需要字符串或缓冲区,找到datetime.date
我只是想要一些排序到字符串功能我做错什么了?我知道我可以成功地循环浏览所有记录,因为:
print 'blah'
工作正常。只是编码中的一些东西让我很困惑。
最佳答案
单字节\xC9
不是UTF-8中任何内容的有效编码。在这种情况下,您需要弄清楚文本当前是如何编码的,很可能是ISO 8859-1或Windows-1252。然后,对其进行相应解码。
例如,如果它是Windows-1252,您将按如下方式解码:
string_record = 'foo \xc9 bar'
print string_record.decode('Windows-1252') # Output: "foo É bar"