我想用
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-1Windows-1252。然后,对其进行相应解码。
例如,如果它是Windows-1252,您将按如下方式解码:

string_record = 'foo \xc9 bar'
print string_record.decode('Windows-1252')  # Output: "foo É bar"

10-07 16:54
查看更多