1. 程式人生 > >Python的編碼和解碼

Python的編碼和解碼

Python的編碼和解碼

在不同的國家,存在不同的文字,由於現在的軟體都要做到國際化通用,所以必須要有一種語言或編碼方式,來實現各種編碼的解碼,然後重新編碼。

在西方國家,沒有漢字,只有英文,所以最開始使用的是ASCII編碼,只有96個元素,所以用8位(1位元組)就能完全表示,但是無法解析中文。

中國有漢字,所以在計算機的發展史上,出現了GB2312、GB18032、GBK等多種編碼方式,在漢字上以2個位元組存放。

為了能夠實現通用,出現了一種標準的編碼方式,unicode編碼,在unicode編碼中,所有的字元/漢字的表示,都用2個或2個以上的位元組,比如英文字元,就是2個位元組,漢字是2個或4個位元組。對於西方國家來說,以前1個位元組能夠表示的,現在需要2個位元組,所佔用的空間翻倍了。所以這個時候就出現了unicode的擴充套件集,utf-8。

Utf-8在表示英文字元上,還是保留1個位元組的表示方法,在表示漢字上,使用3個位元組來表示。

由於unicode才是所有國家通用的計算機編碼方式,所以在不同的編碼之間的轉換,必須是要先經過unicode,才能再進行編碼成其他的編碼,比如uft-8、GBK等。

Utf-8/gbk----------------------decode-----------------àunicode

Unicode------------------------encode----------------àutf-8/gbk

在python中使用的預設編碼是unicode,所以在python中建立的任何物件,預設的編碼方式都是unicode,不能再進行decode,只能進行encode操作。而在檔案頭部宣告的編碼方式,只是為了表明,這個檔案的編碼方式是哪一種,在不同的直譯器上執行,編碼方式是跟直譯器有關。