проблема с python utf-8 - PullRequest
       31

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

2 голосов
/ 19 июля 2011

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

# -*- 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 и персидском языке

Я новичок в Python, что не так?

Ответы [ 2 ]

3 голосов
/ 19 июля 2011

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

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

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

до:

soup = BeautifulSoup(html)

печатается:

[<title>پایگاه خبری تحلیلی تازه</title>]
1 голос
/ 19 июля 2011

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

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

...