一、什么是编码?
首先,我们从一段信息即消息说起,消息以人类可以理解、易懂的表示存在。
我打算将这种表示称为“明文”(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