python 字符編碼與轉碼 py編碼終極版

一. 字符編碼html

  • ASCII: 一個字節,最多能表示255個字符
  • GB2312(1980年):一共收錄了7445個字符,包括6763個漢字和682個其它符號。
  • GBK1.0(1995年):收錄了21886個符號,它分爲漢字區和圖形符號區。漢字區包括21003個字符。
  • GB18030(2000年):取代GBK1.0的正式國家標準,該標準收錄了27484個漢字。
  • Unicode(統一碼,萬國碼)

    爲了解決傳統的字符編碼方案的侷限而產生的,它爲每種語言中的每一個字符設定了統一而且惟一的二進制編碼,規定雖有的字符和符號最少由 16 位來表示(2個字節),即:2 **16 = 65536python

  • utf-8
    utf-8 是對Unicode編碼的壓縮和優化,他再也不使用最少使用2個字節,而是將全部的字符和符號進行分類:ascii碼中的內容用1個字節保存、歐洲的字符用2個字節保存,東亞的字符用3個字節保存...
 
二. 字符解碼
在python3中,默認是Unicode, py3也有兩種數據類型:str和bytes; str類型存unicode數據,bytse類型存bytes數據,與py2比只是換了一下名字而已。
 
py3的編碼哲學:

  Python 3最重要的新特性大概要算是對文本和二進制數據做了更爲清晰的區分,再也不會對bytes字節串進行自動解碼。文本老是Unicode,由str類型表示,二進制數據則由bytes類型表示。Python 3不會以任意隱式的方式混用str和bytes,正是這使得二者的區分特別清晰。你不能拼接字符串和字節包,也沒法在字節包裏搜索字符串(反之亦然),也不能將字符串傳入參數爲字節包的函數(反之亦然)。函數

  注意:不管py2,仍是py3,與明文直接對應的就是unicode數據,打印unicode數據就會顯示相應的明文(包括英文和中文)post

# 獲取python環境編碼
import sys
print(sys.getdefaultencoding())

 

參考:優化

py編碼終極版  http://www.cnblogs.com/yuanchenqi/articles/5956943.html

相關文章
相關標籤/搜索