1. 程式人生 > 實用技巧 >python--編碼與解碼

python--編碼與解碼

背景

  1. 在使用python過程中,經常會遇到這種進位制資料 b'\xe4\xb8\xad\xe6\x96\x87',看起來會一頭霧水
  2. 本篇部落格介紹python如何處理這些編碼

編碼

  1. 計算機資訊的表示方式只有0,1
  2. 將影象,語言文字,音視訊等轉換成二進位制儲存在計算機,稱為編碼
  3. 將0,1組合並賦予不同的含義,且賦予不同的儲存空間的方式又稱為編碼標準
  4. 不同國家因語言不同,有不同的編碼標準
  5. Unicode 為國際統一編碼,即將世界所有字元都分配了一個唯一的數字編號
  6. 主流的編碼標準還有 ASCII、GB2312、GBK、GB18030, GB2312、GBK、GB18030 為漢字字元編碼方案的國家標準。

預設編碼

  1. python2預設編碼為 ASCII,python3預設編碼為 UTF-8
  2. windows預設編碼為 GBK,linux預設編碼為 UTF-8
  3. windows在儲存和讀取檔案均使用 GBK編碼,可以在儲存檔案時指定編碼 encoding='utf-8'

python編碼轉換

  1. 中間碼: 通常用unicode作為中間編碼,先將其他編碼的字串解碼(decode)成unicode,再從unicode編碼(encode)成另一種編碼格式
  2. 編碼(encode): 將unicode的字串轉換成二進位制資料的過程和規則
  3. 解碼(decode): 將二進位制資料轉換為對應的Unicode字串
    encode:str --> bytes

    decode:bytes --> str
s = '中國'
print(s.encode('utf-8'))
print(s.encode('utf-8').decode('utf-8'))
>>>
b'\xe4\xb8\xad\xe5\x9b\xbd'
中國

總結

  1. decode實質是把二進位制資料(bytes)轉化成人看的懂得英文或者漢字
  2. python3預設編碼為 UTF-8