编码二
1,不同的密码本之间的二进制是不能互相识别的,容易报错或者产生乱码。
2,计算机的文件存储和传输都是0101010(gbk,utf-8,ascii,gb2312等)不能是unicode。
大前提:python3x,编码。
bytes :str 拥有的所有方法,bytes都有。
python3x 内存中的编码方式是unicode
英文:
str: 表现形式 name = "alex"
内部编码:unicode
bytes:表现形式:name1 = b"alex"
内部编码:非unicode
中文:
str: 表现形式 name = "中国"
内部编码:unicode
bytes:表现形式:b'xe4xb8xadxe5x9bxbd'
内部编码:非unicode
name ="中国".encode('utf-8') name1 =b'alex' print(name,type(name)) print(name1,type(name1)) b'xe4xb8xadxe5x9bxbd' <class 'bytes'> b'alex' <class 'bytes'>
# name = "alex" # name1 = b"alex" # print(name,type(name)) # print(name1,type(name1)) alex <class 'str'> b'alex' <class 'bytes'>
# str ---> bytes
s1 = '中国'
b1 = s1.encode('utf-8') # encode 编码
b2 = s1.encode('gbk')
print(b1)
print(b2)
s2 = b1.decode('utf-8') # decode 解码
print(s2)
b'xe4xb8xadxe5x9bxbd'
b'xd6xd0xb9xfa'
中国
# utf-8 bytes ---> gbk bytes
s1 = b"alex" print(s1.capitalize()) b'Alex'