python中的編碼
編碼
ascii碼
一個字元佔8位,用一個位元組表示
A:00000010 8位 一個位元組
Unicode
一個字元佔32位,用四個位元組表示
A :00000000 00000001 00000010 00000100 32位 四個位元組
中:00000000 00000001 00000010 00000110
utf-8
A:00000010 8位 一個位元組
中:00000000 00000001 00000110 24位 三個位元組
gbk:
A:00000010 8位 一個位元組
中:00000000 00000110 16位 兩個位元組
注意:
1. 各個編碼的二進位制不能互相識別,會產生亂碼
2. 檔案的儲存、傳輸,不能是Unicode(只能是utf-8/16/gbk/gbk2312/ascii碼進行儲存和傳輸)
python3中
字串在記憶體中使用Unicode儲存的
bytes型別編碼方式:utf-8,gbk,gb2313,ascii
對於英文:
str:
表現形式 s='alex'
編碼方式 010101010 unicode
bytes:
表現形式 s=b'alex'
編碼方式 000101010 utf-8/gbk
對於中文:
str:
表現形式 s='中國'
編碼方式 010101010 unicode
bytes:
表現形式 s=b'x\e91\e91\e01\e21\e31\e32'
編碼方式 000101010 utf-8/gbk....
將str轉換成bytes型別(傳輸和儲存必須是bytes型別)
s1='alex' s2=s1.encode('utf-8') print(s2) #b'alex'