天天看點

python3中的UNICODE 與 UTF-8的簡單關系

一.字元集:

  • ascii

  • ISO-8859-1

    通常叫 做

    Latin-1

    ,向下相容ASCII,此字元集支援部分于歐洲使用的語言
  • GB2312/GBK

    這就是漢字的國标碼,專門用來表示漢字,是雙位元組編碼,而英文字母和iso8859-1一緻(相容iso8859-1編碼)。其中gbk編碼能夠用來同時表示繁體字和簡體字,而gb2312隻能表示簡體字,gbk是相容gb2312編碼的。
  • unicode

    萬國碼

二.Unicode 與 UTF 之間的簡單關系:

  • UTF

    Unicode Transformation Format,通用傳輸格式
  • UTF-8

    8-bit Unicode Transformation Format
UTF-8 是一種 Unicode 的編碼方式,主要作用對 Unicode 碼的資料進行轉換,轉換後友善存儲和網絡傳輸

三.Python3 中的位元組串與字元串 之間的差別:

  • 節串(二進制資料,bytes)
  • 字元串(Unicode碼資料,2個位元組作為一個字)

四.Python3 中編碼:

  • 二進制 -> 轉換 -> 字元串 需要解碼 decode
  • 字元串 -> 轉換 -> 二進制 需要編碼 encode
python3 記憶體中使用的字元串全部是

unicode

碼,但是網絡傳輸的資料或者從磁盤讀取的資料是把

unicode

碼轉換過的資料,通常情況下可能是

utf-8

格式的資料,是以如果從網絡中讀取或者磁盤中讀取其實就是把

utf-8

格式的資料解碼成

unicode

碼資料,相反如果想把記憶體中

unicode

碼資料存儲到磁盤或者網絡中需要對

unicode

碼進行編碼,通常可以采用

utf-8

的形式進行編碼

python3解釋器中自帶UTF-8編碼器,python2中不自帶,是以需要手動設定: #coding:utf-8

繼續閱讀