python3中,更改了默認的編碼方式,更改為了unicode
前提知識:
- utf-8與Unicode的關系:https://baike.baidu.com/item/UTF-8/481798?fr=aladdin
- \x表示是十六進制的數據。
- encode默認是utf-8,右圖中\x對應的是Unicode轉成UTF-8編碼的數據:

- UTF-8: 使用1、2、3、4個字節表示所有字符;優先使用1個字符、無法滿足則使增加一個字節,最多4個字節。英文占1個字節、歐洲語系占2個、東亞占3個,其它及特殊字符占4個
- Unicode的容量極大,其他的編碼幾乎都有在上面有映射,比如中文編碼方式gbk

,所以‘中’在Unicode中的編碼為20013
Python3里str是unicode的,對於二進制,十六進制等格式的使用bytes
decode就是告訴Unicode你是什么編碼的:
encode的結果是個bytes對象:是對應字符各種編碼方式的十六進制表示
下面是按gbk格式encode的結果:
所以decode和encode的實際上是:






