0

这是我的代码:

import re
import mechanize

br = mechanize.Browser()
br.open("http://www.douban.com/")
print br.title()

我访问的是一个中文网站,但是返回的标题是奇怪的字符,

我该如何解决这个问题?

4

2 回答 2

1

如果您这样做br.title(),它将为您提供特殊字符的 unicode 字符串。

print尝试通过对 Unicode 字符串进行编码来显示非 ASCII 字符。

于 2013-07-10T11:57:02.383 回答
0

这是因为字符集问题。例如,在 Python 3.X 中:

>>> print("豆瓣".encode("utf8").decode('gbk'))
璞嗙摚

换句话说,来自服务器的内容“豆瓣”是用字符集“utf8”编码的。但是您的客户尝试将其显示为字符集“gbk”。解决这个问题,需要在这两个不同的charset之间传递内容,比如br.title().encode('gbk').decode("utf8")

于 2013-07-11T02:50:55.727 回答