字符集
ASCII
美国佬用的,1个字节表示那些英文字母啥的就够了
GBK
中国的,两个字节表示2w多汉字也够了
Unicode
万国符,4个字节,用来包含全世界所有的字符。
编码
编码就是将字符集中的数字,如a对应数字97,编成二进制码。
UTF-8
UTF-8是Unicode字符集的编码方案
from lxml import etree
import chardet
text = '''
<div>
<ul>
<li class="item-0"><a href="link1.html">第一 item</a></li>
<li class="item-1"><a href="link2.html">second item</a></li>
<li class="item-inactive"><a href="link3.html">third item</a></li>
<li class="item-1"><a href="link4.html">fourth item</a></li>
<li class="item-0"><a href="link5.html">fifth item</a>
</ul>
</div>
'''
html = etree.HTML(text)
result = etree.tostring(html,encoding='utf-8')
print(result.decode('utf-8'))
- result = etree.tostring(html,encoding=‘utf-8’)
如果不加utf-8,它这里默认的是使用ascii进行编码,那么到时候解码时用utf-8解码就会出错。 - result.decode(‘utf-8’)
这里要解码是因为,result是bytes类型,所以需要解码。 - 这里但凡有个utf-8没写,都会中文乱码