1. 程式人生 > >Python 編碼

Python 編碼

其他 常見 python3 操作系統 網絡傳輸 聲明 keyword 文件頭 特殊字符

.編碼類型:

  • ASCII 占1個字節,只支持英文
  • GB2312 占2個字節,支持6700+漢字
  • GBK GB2312的升級版,支持21000+漢字
  • Shift-JIS 日本字符
  • ks_c_5601-1987 韓國編碼
  • TIS-620 泰國編碼
  • Unicode 萬國碼
    • 為了解決存儲和網絡傳輸的問題,出現了Unicode Transformation Format,學術名UTF,即:對unicode中的進行轉換,以便於在存儲和網絡傳輸時可以節省空間!

      • UTF-8: 使用1、2、3、4個字節表示所有字符;優先使用1個字符、無法滿足則使增加一個字節,最多4個字節。英文占1個字節、歐洲語系占2個、東亞占3個,其它及特殊字符占4個
      • UTF-16: 使用2、4個字節表示所有字符;優先使用2個字節,否則使用4個字節表示。
      • UTF-32: 使用4個字節表示所有字符

2.Python3 執行過程

解釋器找到代碼文件,把代碼字符串按文件頭定義的編碼加載到內存,轉成unicode

把代碼字符串按照語法規則進行解釋,

所有的變量字符都會以unicode編碼聲明

3.解碼和編碼

UTF-8 --> decode 解碼 --> Unicode Unicode --> encode 編碼 --> GBK / UTF-8 .. #網頁爬取的時候,轉碼s.decode(‘gbk‘, ‘ignore‘).encode(‘utf-8′)

decode的作用是將其他編碼的字符串轉換成unicode編碼,如str1.decode(‘gb2312‘),表示將gb2312編碼的字符串str1轉換成unicode編碼。

encode的作用是將unicode編碼轉換成其他編碼的字符串,如str2.encode(‘gb2312‘),表示將unicode編碼的字符串str2轉換成gb2312編碼。

Python只要出現各種編碼問題,無非是哪裏的編碼設置出錯了
4常見編碼錯誤的原因有:

  • Python解釋器的默認編碼
  • Python源文件文件編碼
  • Terminal使用的編碼
  • 操作系統的語言設置

Python 編碼