Python 编码详细介绍
ascii:字母、数字、特殊字符
- A:0100 0001
- B:0100 0010
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
- 中文
- str
- 表现形式:s1 = ‘南肆’
- 内部编码方式:unicode
- bytes
- 表现形式:b1 = b’\xe5\x8d\x97\xe8\x82\x86’
- 内部编码方式:非 unicode
- str
如何使用
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wkyU2LEw-1587626451051)(http://qiniuyun.iamnancy.top/str2socket2.png)]
如果你想将一部分内容(字符串)写入文件或通过网络进行传输,必须先转化成bytes才可。平时代码中,使用字符串。
- str—> bytes:encode 编码
- bytes—> str:decode 解码