ASCII码:
A : 0100 0001 8位
中:0100 0001 0100 0001 16位
Unicode编码:
A:0100 0001 0100 0001 16位
中:0100 0001 0100 0001
升级
A:0100 0001 0100 0001 0100 0001 0100 0001 32位
中:0100 0001 0100 0001 0100 0001 0100 0001
浪费资源
UTF-8编码:
一个英文字符等于一个字节,一个中文(含繁体)等于三个字节。
A :01000001 8位
欧:01000001 01000001 16位
中 :01000001 01000001 01000001 24位
gbk:国标,只包含中文,英文(英文字母,数字,特殊字符)
A : 01000001 8位
中文 : 01000001 01000001 16位
1.编码之间不能互相识别。
2.网络传输,或着硬盘存储的010101,必须是以非Unicode编码方式得01010101
大环境python3.x:
str:内存(内部)编码方式位Unicode。
其他都是utf-8
bytes:python的基础数据类型之一,他和str相当于双胞胎,str拥有的所有方法,bytes类型都适用。
str与bytes区别:
英文字母:
str:
表现形式:s1 = \'alex\'
内部编码方式:Unicode
bytes:
表现形式:b1 = b\'alex\'
内部编码方式:非Unicode
中文字母:
str:
表现形式:s1 = \'太白\'
内部编码方式:Unicode
bytes:
表现形式:b1 = b\'\\xe5\\xa4\\xaa\\xe7\\x99\\xbd\'
内部编码方式:非Unicode
如何使用:
如果你想将一部分内容(字符串)写入文件,或者通过网络socket传输传输,这样这部分内容(字符串)必须转化成bytes才可以进行。
bytes类型gbk能与utf-8相互转换,前提是英文字母,数字,特殊字符。因为他们引用的都是ASCII