1. 程式人生 > >python3中的UNICODE 與 UTF-8的簡單關係

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