我正在尝试使用
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]
TypeError:强制转换为Unicode:需要字符串或缓冲区,找到datetime.date
我只想要一些排序功能,我做错了什么?我知道我可以成功遍历所有记录,因为像:
print 'blah'
工作正常。编码中的一些东西正在绊倒我。
答案 0 :(得分:4)
单字节\xC9
不是UTF-8中任何内容的有效编码。您需要弄清楚文本当前是如何编码的 - 在这种情况下,它最有可能是ISO 8859-1或Windows-1252。然后,相应地解码它。
例如,如果是Windows-1252,则按如下方式对其进行解码:
string_record = 'foo \xc9 bar'
print string_record.decode('Windows-1252') # Output: "foo É bar"