Python 編碼詳細介紹
時間 2021-01-22
標籤
Python3
python
unicode
ascii:字母、數字、特殊字符
unicode:萬國碼,包含世界上所有的文字
- 創建之初
- A:0000 0000 0100 0001
- 中:0100 1110 0010 1101
- 升級
- A:0000 0000 0000 0000 0000 0000 0100 0001 (32位)
- 中:0000 0000 0000 0000 0100 1110 0010 1101
- 資源浪費
對 unicode 升級:utf-8
- A:0100 0001 (8位)
- 歐:0000 0010 0100 0001 (16位)
- 中:1110 0100 1011 1000 1010 1101 (24位)
gb2312:國標,包含字母、數字、特殊字符、中文
- A:0100 0001
- 中:1101 0110 1101 0000
注意
- 編碼之間不能互相識別
- 網絡傳輸、硬盤存儲,必須是以非 unicode 編碼方式的 0100 0001
Python 3.X
- str:內存編碼方式爲 unicode
- bytes:
區別
- 英文字母
- str
- 表現形式:s1 = ‘nancy’
- 內部編碼方式:unicode
- bytes
- 表現形式:b1 = b’nancy’
- 內部編碼方式:非 unicode
- 中文
- str
- 表現形式:s1 = ‘南肆’
- 內部編碼方式:unicode
- bytes
- 表現形式:b1 = b’\xe5\x8d\x97\xe8\x82\x86’
- 內部編碼方式:非 unicode
如何使用
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-wkyU2LEw-1587626451051)(http://qiniuyun.iamnancy.top/str2socket2.png)]
如果你想將一部分內容(字符串)寫入文件或通過網絡進行傳輸,必須先轉化成bytes纔可。平時代碼中,使用字符串。
- str—> bytes:encode 編碼
- bytes—> str:decode 解碼