Проблема с python utf-8

Это мой сценарий

# -*- coding: utf-8 -*-
from BeautifulSoup import BeautifulSoup
import urllib2

res = urllib2.urlopen('http://tazeh.net')
html = res.read()

soup = BeautifulSoup(''.join(html))

title = soup.findAll('title')
print title

когда я запускаю этот скрипт в терминале, я получаю неправильный текст

$ python test.py

[<title>ٞاŰ&OElig;گاŮ&Dagger; ؎بعŰ&OElig; ŘŞŘ­Ů&bdquo;Ű&OElig;Ů&bdquo;Ű&OElig; تازŮ&Dagger;</title>]

это название в кодировке utf-8 и персидском языке

я новичок в питоне, что не так?

2 ответа

Решение

Если я добавлю (как один из комментариев предложил сделать в менее полезном месте):

html = html[:10000].decode("utf-8")

(фрагмент из-за того, что декодирование не удалось со смещением дальше в страницу)

до:

soup = BeautifulSoup(html)

это печатает:

[<title>پایگاه خبری تحلیلی تازه</title>]

''.join(html) ненужно Переменная html это уже одна строка.

Однако, похоже, что страница не была должным образом закодирована в UTF-8.

Другие вопросы по тегам