Проблема кодирования при загрузке HTML с использованием mechanize и Python 2.6 - PullRequest
4 голосов
/ 27 сентября 2010
browser = mechanize.Browser()
page = browser.open(url)
html = page.get_data()

print html

Показывает некоторые странные символы.Я предполагаю, что это строка UTF-8, но Python не знает об этом и не может показать ее должным образом.

Как я могу преобразовать эту строку в строку Unicode, например

u = u'test'

Ответы [ 3 ]

4 голосов
/ 27 сентября 2010

Это было сжато

def ungzipResponse(r,b):
    headers = r.info()
    if headers['Content-Encoding']=='gzip':
        import gzip
        gz = gzip.GzipFile(fileobj=r, mode='rb')
        html = gz.read()
        gz.close()
        headers["Content-type"] = "text/html; charset=utf-8"
        r.set_data( html )
        b.set_response(r)

response = browser.open(url)
ungzipResponse(response, browser)
html = response.read()
1 голос
/ 03 октября 2010

вам нужно определить кодировку как:

#!/usr/bin/python
# -*- coding: iso-8859-15 -*-

Механизировать нужно.

для получения дополнительной информации проверьте это http://www.python.org/dev/peps/pep-0263/

1 голос
/ 27 сентября 2010
u = html.decode('utf-8')
...