python - Mechanize 的 UnicodeDecodeError 问题

标签 python unicode mechanize

<分区>

我通过 mechanize 从一个网站收到以下字符串:

'We\x92ve'

我知道\x92 代表 字符。我正在尝试将该字符串转换为 Unicode:

>> unicode('We\x92ve','utf-8')
UnicodeDecodeError: 'utf8' codec can't decode byte 0x92 in position 2: unexpected code byte

我做错了什么?

编辑:我尝试“utf-8”的原因是:

>> response = browser.response()
>> response.info()['content-type']
'text/html; charset=utf-8'

现在我发现我不能总是信任 content-type header 。

最佳答案

\x92 代表 好吧,但它在 Windows-1252 编码中这样做,而不是在 UTF-8 中:

>>> print unicode('We\x92ve','1252')
We’ve

如果您不知道源数据的编码方式,您可以使用 chardet 检测它(非常易于使用)。

关于python - Mechanize 的 UnicodeDecodeError 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2305997/

相关文章:

python - Pyramid 错误 : AttributeError: No session factory registered

python - 我可以让这段代码更有效率吗?目前运行约 100 万条条目需要约 6 小时

java - Java URI 中的高 unicode 代码点在解码时会导致错误

python - Mechanize (将输入设置为表单)

javascript - 如何使用 Mechanize 提交表单以获取下一个网页的 URL?

python - 根据循环中的匹配创建重复数据删除列表的列表? - python ,Openpyxl

php - 无法在 php 中读取 python 的输出

Python unicode规范化: is it correct to translate u'\xb 4' to u' \u0301'

delphi - 如何选择Delphi 2007的迁移路径

ruby-on-rails - Ruby 中的 Web 抓取 Mechanize 为浏览器生成不同的 html