你说:
导致该问题的字符是:
你怎么知道?您正在用什么来查看文字?
因此,您无法发布URL和API密钥;读取数据,将其写入文件(以二进制模式)并发布该怎么办?
当您在网络浏览器中打开该文件时,它将检测到什么编码?
至少要这样做
data.decode('utf8') # where data is what you get from ur.read()
这将产生一个异常,告诉您非UTF-8数据的字节偏移。
然后这样做:
print repr(data[offset-10:offset+60])
并向我们??展示结果。
假设编码实际上是cp1252
在解码lxml错误消息中的字节:
>>> guff = "\xEA\x76\x65\x73"
>>> from unicodedata import name
>>> [name(c) for c in guff.decode('1252')]
['LATIN SMALL LETTER E WITH CIRCUMFLEX', 'LATIN SMALL LETTER V', 'LATIN SMALL LE
TTER E', 'LATIN SMALL LETTER S']
>>>
那么,您是否看到e-circumflex ves
,或,a-ring紧随其后ves
,或a-ring紧随其后?
数据是否以XML声明开头<?xml version="1.0" encoding="UTF-8"?>
?如果没有,它是从什么开始的?
猜测/确认编码的线索:文字是用哪种语言编写的?什么国家?
。
根据您在错误附近显示的摘录,电影的标题为“ La science desrêves”(梦的科学)。
有趣的是,PHP如何在“ F *** ingÅmål”上作呕,但Python在法国梦中cho住。确定要执行相同的查询吗?
您应该已经告诉我们这是IMDB,因此您会早点得到答案。
在传递data
给lxml
解析器之前,请执行以下操作:
data = data.replace('encoding="UTF-8"', 'encoding="iso-8859-1"')