一、什么是編碼?
首先,我們從一段信息即消息說起,消息以人類可以理解、易懂的表示存在。
我打算將這種表示稱為“明文”(plain text)。對于說英語的人,紙張上打印的或屏幕上顯示的英文單詞都算作明文。
其次,我們需要能將明文表示的消息轉成另外某種表示,我們還需要能將編碼文本轉回成明文。
從明文到編碼文本的轉換稱為“編碼”,從編碼文本又轉回成明文則為“解碼”。
1、Ascii:這是由數字、字母、特殊字符組成的。
字節:8位表示一個字節。
字符:是你看到的內容的最小組成單位。
abc : a 一個字符。
中國:中 一個字符。
2、unicode: 萬國碼
a : 0000 1011
起初: a : 0000 1011 0000 1011
中: 0000 1011 0000 1111
升級: a : 0000 1011 0000 1011 0000 1011 0000 1011
中: 0000 1011 0000 1111 0000 1011 0000 1011
3、utf-8:最少用8位表示一個字符。
a: 0000 1011
歐洲: 0000 1011 0000 1011
亞洲中:0000 1011 0000 1011 0000 1011
4、gbk:國標
a: 0000 1011
中: 0000 1011 0000 1011 兩個字節。
1,不同編碼之間的二進制是不能互相識別的。
2,對于文件的存儲及傳輸 不能是unicode的編碼。
python3x
int
bool
bytes:內部編碼方式:(非unicode,utf-8,gbk.gb2312...)
str : 內部編碼方式unicode
list
dict
tuple
字母:
str:表現形式:s1 = 'abcd'
內部編碼:unicode
bytes:表現形式:s2 = b'abcd'
內部編碼:非unicode
中文:
str:表現形式:s1 = '中國'
內部編碼:unicode
bytes:表現形式:b1 = b'\xe4\xb8\xad\xe5\x9b\xbd'
內部編碼:非unicode