P006_01_python字符集区别和转换
编码
ascii:
- A:00000010 8位 一个字节
unicode:
- A:00000000 00000001 00000010 00000100 32位 四个字节
- 中:00000000 00000001 00000010 00000100 32位 四个字节
utf-8:
- A:00000110 8位 一个字节
- 中:00000010 00000110 16位 两个字节
gbk:- A:00000110 8位 一个字节
- 中:00000010 00000110 16位 两个字节
- 各个编码之间的二进制,是不能互相识别的,会产生乱码。
- 文件的存储,传输,不能是unicode (只能是utf-8 utf-16 gbk gbk2312 ascii等)
#### py3:
- str 在内存中是Unicode编码。
- bytes类型,可以是 ascii utf-8 gbk ….
b前缀代表它是bytes类型
对于英文:
1 | str:表现形式:s = 'alex' |
对于中文:
1 | str:表现形式:s = '中国' |
转换
encode 编码,如何将 str ——> bytes
使用方法: str.encode(‘utf-8’)
decode 解码,如何将 bytes——> str
使用方法: bytes.decode(‘utf-8’)