python2的编码和解码问题

2018-01-11  本文已影响105人  不一样的丶我们

怀念python3

s = "abc"
# 声明了一个字符串这个字符串就是构造了一个str对象,默认情况下就是通过Unicode直接编码的字符.
# 如果将字符转化为字节,进行编码操作:
s.encode("utf-8")
>>> s = "中文"
>>> x = s.encode("utf-8")
>>> x
>>> b'\xe4\xb8\xad\xe6\x96\x87'
# 如果将字节转化为字符,进行编码操作:s.decode("utf-8")
>>> x
>>> b'\xe4\xb8\xad\xe6\x96\x87'
>>> x.decode("utf-8")
>>> '中文'
# 默认情况下
>>> s = "中文"
>>> s
>>> '\xd6\xd0\xce\xc4'
# 如果在声明的时候就需要一个中文字符串,在字符串的前面添加一个u字符,表示是通过unicode编码的.
>>> s = u'中文'
>>> s
>>> u'\u4e2d\u6587'
# 如果是默认字节形式的中文字符串,要得到原本的中文形式,需要decode()函数操作
>>> s = "中文"
>>> s
>>> '\xd6\xd0\xce\xc4'
>>> x = s.decode('gbk')
>>> x
>>> u'\u4e2d\u6587'
# 如果要将一个unicode编码的字符串转换成ascii编码进行后续的操作.
# 为什么要转化成ascii编码?
# 因为python内置的大量模块,并没有提供中文支持,调用内置模块的函数操时,如果出现非ascii编码,就会出现ascii编码不支持的错误.
>>> UnicodeEncodeError: 'ascii' codec can't encode characters
# 将unicode字符串,转换成bytes类型的str字符串
# 转换方式:
>>> s = u'中文'
>>> s
>>> u'\u4e2d\u6587'
>>> x = s.encode("gbk")
>>> x
>>> '\xd6\xd0\xce\xc4'

python2编码解码的问题~字符串

上一篇 下一篇

猜你喜欢

热点阅读