机械化的UnicodeDecodeError问题

时间:2010-02-21 13:24:39

标签: 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'

现在,我发现我无法始终信任内容类型标题。

1 个答案:

答案 0 :(得分:4)

\x92代表好,但它在Windows-1252编码中执行,而不是在UTF-8中执行:

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

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