1. 程式人生 > 其它 >encode()、decode()字元編碼問題

encode()、decode()字元編碼問題

python3中,更改了預設的編碼方式,更改為了unicode

前提知識:

  1. utf-8與Unicode的關係:https://baike.baidu.com/item/UTF-8/481798?fr=aladdin
  2. \x表示是十六進位制的資料。
  3. encode預設是utf-8,右圖中\x對應的是Unicode轉成UTF-8編碼的資料:
  4. UTF-8: 使用1、2、3、4個位元組表示所有字元;優先使用1個字元、無法滿足則使增加一個位元組,最多4個位元組。英文佔1個位元組、歐洲語系佔2個、東亞佔3個,其它及特殊字元佔4個
  5. Unicode的容量極大,其他的編碼幾乎都有在上面有對映,比如中文編碼方式gbk
  6. ,所以‘中’在Unicode中的編碼為20013

Python3裡str是unicode的,對於二進位制,十六進位制等格式的使用bytes

decode就是告訴Unicode你是什麼編碼的:

encode的結果是個bytes物件:是對應字元各種編碼方式的十六進位制表示

下面是按gbk格式encode的結果:

所以decode和encode的實際上是:

原文章:encode()、decode()字元編碼問題 - 隨風行雲 - 部落格園 (cnblogs.com)