Python字元編碼

2021-09-18 05:25:26 字數 957 閱讀 2802

計算機只能處理數字,如果要處理文字,必須先把文字轉化成數字。計算機最早是美國人發明的,所以只有127個字元被編碼到計算機裡面,即大小寫英文本母、數字及一些符號,這個編碼表被稱為ascll表。其中「a」的編碼是65,「a」的編碼是97。大本事處理中文乙個位元組是不夠的,至少需要兩個位元組,為了不與ascll碼衝突,中國制定了gb2312編碼,用來把中文編進去。

**注意:**乙個位元組能表示的最大整數是225(二進位制1111111),兩個位元組能表示的最大整數是65535,四個位元組能表示的最大整數是4294967295。如果要表示更大的數需要更多的位元組。

世界上的語言有很多,在多語言混亂的文字中,顯示出來會有亂碼,unicode把所有語言都統一到一套編碼裡,這樣就不會有亂碼問題了。(日本把日文編到shift-jis裡面,南韓把韓文編到euc-kr裡)

**ascll碼和unicode的區別:**ascll編碼是乙個位元組,unicode編碼通常是兩個位元組。字元0的ascll編碼是48,注意字元『0』和整數0是不同的。

如果寫的文字基本上全部是英文的話,用unicode編碼比ascii編碼需要多一倍的儲存空間,在儲存和傳輸上就十分不划算,所以把unicode編碼轉化為「可變長編碼」的utf-8編碼。utf-8編碼(每次8個位傳輸資料)把乙個unicode字元根據不同符號而變化位元組長度,當字元在ascll碼的範圍時,就用乙個位元組表示,保留了ascll字元乙個位元組的編碼作為它的一部分(常用的英文本母被編碼成1個位元組),漢字通常是3個位元組(注意:unicode乙個中文字元佔兩個位元組),只有很生僻的字元才會被編碼成4-6個位元組。如果你要傳輸的文字包含大量英文本元,用utf-8編碼就能節省空間。從unicode到utf-8並不是直接對應的,而是要通過一些演算法和規則來轉化的。

用記事本編輯的時候,從檔案讀取的utf-8字元被轉換為unicode字元到記憶體裡,編輯完成後,儲存的時候再把unicode轉換為utf-8儲存到檔案。

python字元編碼

ascii 碼是乙個位元組,通常只能顯示英文本母和數字。unicode碼為了顯示多種語言產生,但是要占用兩個位元組,顯示文字要占用大量空間 utf 8 為了節約空間而生,英文本元只用乙個位元組儲存,中文字元需要三個位元組 character ascii unicode utf 8 a01000000...

python字元編碼

列印python檔案編碼 import sys print sys.getdefaultencoding 中文的乙個字元unicode占用2個位元組。對在於ascii字元占用1個位元組 utf 8中 中文字元佔3個位元組,英文本元占用1個位元組 編碼和轉碼 unicode不能再解碼了 它是基層的 u...

Python字元編碼

在用python程式設計中,字串有兩種表示方法 string 和 u string 為什麼字串要是用這兩種表達方式。不是僅僅用前一種呢?使用type 函式檢視,它們各自是str物件和unicode物件。這兩個物件有什麼差別嗎?還有經經常使用到的encode 和decode 又是幹什麼的呢?都說pyt...