1. 编码解码概念
首先要明白一些概念,调用函数的时候就不会出错了
编码:把数据变为01比特。网络通信中的编码也是这个意思。
解码:从01比特恢复为有意义的表示形式
在python3中,字符串是str类型,而bytes类型表示的是一个字节串。从str到bytes就叫编码,从bytes到str就叫解码。
2. UNICODE、UTF-8、UTF-16…
UNICODE是一个独立的字符集,它并不是和编码绑定的,UTF-8/UTF-16/UTF-32才是UNICODE具体的编码方案。UNICODE编码的问题网上资料非常多,不再赘述,只说两点:
1、UTF-8为一种变长的编码方案,使用 1~6 个字节来存储。对英文字母的编码只有1个字节,和ASCII编码一样。
2、UTF-xx都存在BOM头,需要注意
3. 代码测试
python3中str类型默认采用unicode编码
>>> s = 'abcd'
>>> s.encode