Python字符串编码与解码

Python字符串编码与解码

在ipython shell中,设置默认编码为utf-8后,


In [15]: s1 = '编程'

In [16]: s2 = u'编程'

In [17]: print s1
编程

In [18]: print s2
编程

In [19]: s1
Out[19]: '\xe7\xbc\x96\xe7\xa8\x8b'

In [20]: s2
Out[20]: u'\u7f16\u7a0b'

In [21]: s1 == s2
/usr/bin/ipython:1: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal
  #! /usr/bin/python
Out[21]: False

16行中,字符串'编程'前的u表示s2采用unicode编码,而s1采用ipython shell默认的utf-8编码,虽然print的结果一样,但s1不等于s2.

然后:


In [22]: r1 = s1.decode('utf-8')

In [23]: r2 = s2.encode('utf-8')

In [24]: print r1
编程

In [25]: print r1
编程

In [27]: r1
Out[27]: u'\u7f16\u7a0b'

In [28]: r2
Out[28]: '\xe7\xbc\x96\xe7\xa8\x8b'
In [29]: r1 == r2
Out[29]: False

In [30]: r1 == s2
Out[30]: True

In [31]: r2 == s1
Out[31]: True

22行是对s1的解码,将其从utf-8编码转换成unicode

23行是对s2的编码,将其从unicode转换成utf-8编码

对于s2来说,是不存在解码一说,对于s1来说,也不能说将其编码成unicode。

如果想要将utf-8编码字符串转换成gbk编码,可以现将utf-8转换成unicode,再将unicode转换成gbk。

转载于:https://www.cnblogs.com/Coder816/p/4696727.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值