一个很好用的检测文档编码的三方库chardet。
下载地址, 文档地址。
使用方法为
import urllib
rawdata = urllib.urlopen('http://www.51voa.com/VOA_Standard_English').read()
import chardet
chardet.detect(rawdata)
#{'confidence': 1.0, 'encoding': 'UTF-8'}
如果是字符串的话直接只要后面一段就可以了
然后使用类似下面的语句就可以编码为你想要的编码了
htm=unicode(text,'gb2312','ignore').encode('utf-8','ignore')
或者
soup=BeautifulSoup(s,fromEncoding="GBK")
beautifulsoup的默认输出编码是utf-8