如何从文档中获取西里尔字符串?
我已经停止了代码:
import urllib
from BeautifulSoup import BeautifulSoup
page = urllib.urlopen("http://habrahabr.ru/")
soup = BeautifulSoup(page.read())
for topic in soup.findAll(True, 'topic'):
print topic
print
raw_input()
网站上有西里尔文字,但python显示错误的字符。
对于这个问题的任何帮助,我都会非常有帮助。
PS。
我改变了
soup = BeautifulSoup(page.read())
到
soup = BeautifulSoup(page.read(), fromEncoding="utf-8")
仍然没有结果......
答案 0 :(得分:3)
HTML页面上的数据以UTF-8编码。您似乎将它打印到控制台,其中sys.stdout.encoding是cp1251。这说明了你所看到的垃圾。
以下是使用IDLE检查第一个主题的前8个字节的结果:
>>> raw = '\xd0\x90\xd0\xbb\xd0\xb3\xd0\xbe'
>>> print raw.decode('utf8')
Алго
>>> print raw.decode('cp1251')
Алго
>>>
答案 1 :(得分:0)
感谢您的帮助。
我用这段代码解决了问题:
print str(topic).decode('utf8')
答案 2 :(得分:0)
from django.utils.encoding import force_unicode
print ("%s" % force_unicode(topic, encoding='utf-8', strings_only=False, errors='strict'))
所以你可以从django
获取这个功能