ASCII : 字母, 数字, 特殊字符
字符:1个字节
数字: 1个字节
Unicode: 万国码, 包含所有文字
创建之初
字符: 2个字节
中文: 2个字节
升级:
字符: 4个字节
中文 : 4个字节
容易浪费资源
utf-8
字符: 一个字节
欧文: 2个字节
中文: 3个字节
gb2312 : 国标: 字母, 数字, 特殊字符
字符: 1个字节
中: 2个字节
1. 编码之间不能相互识别
2. 网络传输,或者硬盘储存的010101,必须是非Unicode
在python3 中
str:内存(内部)编码方式为Unicode
bytes: python基础数据类型, 他和str孪生兄弟
int
dict
set
str 和 bytes 区别:
英文字母:
str:
表现形式: s1 = 'alex'
内部编码: Unicode
bytes:
表现形式: s1 = b'alex'
内部编码: 非unicode
中文字符:
str:
表现形式: s1 = '太白'
内部编码: Unicode
bytes:
表现形式:s1='xe5xa4xaaxe7x99xbd'
内部编码: 非Unicode
使用场景:
当你想将一部分内容(字符串)写入文件, 或者通过网络socket传输时,必须表现为bytes类型
下面是python中的编码和解码
s1 = '太白‘
b1 = s1.encode('utf-8') #把s1 转码成utf-8 进行文件传输
s2 = b1.decode('utf-8') # 把b1解码为Unicode 方便阅读