Python 編碼
阿新 • • 發佈:2017-11-28
其他 常見 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 編碼