python字符编码
最早的字符编码标准:ASCII
127个字符,没有中文
1个英文字母需要1个字节
8个位=1字节
1024字节=1kb
1024kb=1MB
后来为了扩展中文支持,出现了GB2312、GBK后来出现Unicode
把所有语言统一到一套编码里
每个字符占用2个字节
最后出现UTF-8 (unicode的压缩和优化)
1个英文 1个字节
1个中文 3个字节
python3.X 默认unicode编码,默认支持中文
python3.X 输入英文用的ASCII编码,占用1个字节。
python3.X 输入中文用UTF-8编码,占用3个字节。
python2.X 默认ASCII编码,无法支持中文
支持中文方式:
#!/bin/bash/env python #解释器
#_*_ coding:utf-8 _*_ #支持中文,用utf-8格式编码中文。
encode 编码
decode 解码
python3.X socket传输数据必须是 二进制 才能传输。
b开头是 二进制bytes类型。
转换举例:
msg = "你好"
print(msg.encode(encoding="utf-8")) 括号里不指定编码,默认使用utf-8编码
print(msg.encode(encoding="utf-8").decode(encoding="utf-8"))
python2.X会以系统默认编码进行编码