如何从文档中获取西里尔字符串
如何从文档中获取西里尔字母字符串?
我有以下代码:
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显示的字符不对。
如果能在这个问题上得到任何帮助,我将非常感激。
附言:
我把
soup = BeautifulSoup(page.read())
改成了
soup = BeautifulSoup(page.read(), fromEncoding="utf-8")
但还是没有结果...
3 个回答
0
在Django中,我是这样解决的:
from django.utils.encoding import force_unicode
print ("%s" % force_unicode(topic, encoding='utf-8', strings_only=False, errors='strict'))
所以你可以从Django中获取这个功能。
0
谢谢你的帮助。
我用这段代码解决了问题:
print str(topic).decode('utf8')
3
这个HTML页面上的数据是用UTF-8编码的。看起来你把这些数据打印到了控制台,而你的控制台使用的是cp1251编码。这就是你看到乱码的原因。
下面是用IDLE检查第一个主题的前8个字节的结果:
>>> raw = '\xd0\x90\xd0\xbb\xd0\xb3\xd0\xbe'
>>> print raw.decode('utf8')
Алго
>>> print raw.decode('cp1251')
Алго
>>>