把写程序过程遇到的编码相关的问题记录下,暂时还不知道本质原因,仅为记录
import chardet print chardet.detect(str) #可以显示str的实际编码 或者 from bs4 import Beautifulsoup print Beautifulsoup(str).original_encoding #显示str的实际编码
问题:网页中charset='utf8',但是decode('utf-8')时出错
解决:decode('utf-8', 'ignore')
问题:网页中charset=gbk”或“charset=2312”,但是decode('gbk')或decode('gb2312')时出错
解决:decode('gb18030')
问题:print str显示正常,但是print Beautifulsoup(str)乱码
解决:soup=Beautifulsoup(str, from_encoding('utf8'))