python字符編碼

字符編碼:
ASCII:佔一個字節,只支持英文
GBK2312:佔兩個字節,支持6700+漢字
GBK GB2312的升級版:支持21000+漢字
Unicode:2-4個字節

Unicode作用:
直接支持全球所有語言,每個國家可以不再使用之前自己的舊編碼,直接使用unicode
包含了跟全球所有國家編碼的映射關係

Unicode解決了字符於二進制的對應關係,由於Unicode對比ASCII編碼佔用字節增加一倍,同時也爲了解決存儲和網絡傳輸的問題,出現了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個字節表示所有字符。

總結:UTF 是爲unicode編碼 設計 的一種 在存儲 和傳輸時節省空間的編碼方案

字符在硬盤上的存儲,無論以什麼編碼在內存裏顯示字符,存在硬盤上都是二進制的。

注意的是:存在硬盤上時是以什麼編碼保存,再從硬盤上讀取時,就必須以相同的編碼讀取,不然會出現亂碼。

python3的執行過程:
解釋器找到代碼文件,把代碼字符串按文件頭定義的編碼加載都內存中,轉成unicode
把代碼字符串按照語法規則進行解釋
所有的變量字符都會以unicode編碼生命

常見的編碼錯誤的原因:
python解釋器的默認編碼
python源文件文件編碼
terminal使用的編碼
操作系統的語言設置

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章