python3 字符串str编码是unicode
所以下面两个字符串是等价的
s1 = "你好,中国!"
s2 = u"你好,中国!"
python3中unicode是没有decode(解码)属性
s3 = s1.decode("utf-8") # 报错
AttributeError: 'str' object has no attribute 'decode'
编码成gbk 或 utf-8
s4 = s1.encode('gbk')
print(s2) # b'\xc4\xe3\xba\xc3\xa3\xac\xd6\xd0\xb9\xfa\xa3\xa1'
print(type(s2)) # <class 'bytes'>
s5 = s1.encode('utf-8')
print(s3) # b'\xe4\xbd\xa0\xe5\xa5\xbd\xef\xbc\x8c\xe4\xb8\xad\xe5\x9b\xbd\xef\xbc\x81'
print(type(s3)) # <class 'bytes'>
可以看出字符串编码后就变成了bytes类型,解码后是unicode的,也就是str
网友评论