这是我的代码:
import re
import mechanize
br = mechanize.Browser()
br.open("http://www.douban.com/")
print br.title()
我访问的是一个中文网站,但是返回的标题是奇怪的字符,
我该如何解决这个问题?
如果您这样做br.title()
,它将为您提供特殊字符的 unicode 字符串。
print
尝试通过对 Unicode 字符串进行编码来显示非 ASCII 字符。
这是因为字符集问题。例如,在 Python 3.X 中:
>>> print("豆瓣".encode("utf8").decode('gbk'))
璞嗙摚
换句话说,来自服务器的内容“豆瓣”是用字符集“utf8”编码的。但是您的客户尝试将其显示为字符集“gbk”。解决这个问题,需要在这两个不同的charset之间传递内容,比如br.title().encode('gbk').decode("utf8")