Проблема с 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>ŮžŘ§ŰŒÚŻŘ§Ů‡ ŘŽŘ¨ŘąŰŒ ŘŞŘŮ„ŰŒŮ„ŰŒ تازه</title>]
это название в кодировке utf-8 и персидском языке
я новичок в питоне, что не так?
2 ответа
Решение
Если я добавлю (как один из комментариев предложил сделать в менее полезном месте):
html = html[:10000].decode("utf-8")
(фрагмент из-за того, что декодирование не удалось со смещением дальше в страницу)
до:
soup = BeautifulSoup(html)
это печатает:
[<title>پایگاه خبری تحلیلی تازه</title>]
''.join(html)
ненужно Переменная html
это уже одна строка.
Однако, похоже, что страница не была должным образом закодирована в UTF-8.