python3中各种编码问题

2021-03-09  本文已影响0人  blair_liu

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

上一篇 下一篇

猜你喜欢

热点阅读