于BS4文档中提到,编码自动检测 功能可以在Beautiful Soup以外使用,检测某段未知编码时,可以使用这个方法:
from bs4 import UnicodeDammit
dammit = UnicodeDammit("Sacr\xe9 bleu!", ["latin-1", "iso-8859-1"])
print(dammit.unicode_markup)
# Sacré bleu!
print(dammit.original_encoding)
# 'latin-1'
在实际操作中,发现 dammit.original_encoding 这个变量没有获取到值,打印出来显示为None,cmd中直接执行显示为空白,并没有文中提到的# 'latin-1'编码方式
这是python版本不同导致的,源码的
python 2
版本中(isinstance(markup,unicode
)):源码的
python 3
版本中(isinstance(markup,str
)):因为你是Python 3 所以返回None