python 中文 str 以及 unicode区别和互相转换

看了 http://www.jianshu.com/p/53bb448fe85b# 这篇兄弟的文章, 深有感触,自己做做测试试试:

  • 加不加u是有区别的哦
    这里写图片描述

  • unicode到string 只需要encode一下,尤其在我们读取unicode的文本,然后需要进行字符拼接的时候,本身unicode无法进行拼接
    这里写图片描述

  • string decode之后就是unicode了
    这里写图片描述

  • string和string, 以及 unicode和unicode 可以进行拼接

这里写图片描述

这里写图片描述

  • 但是string和unicode在一起就有问题了

这里写图片描述


In [38]: 

In [38]: 

In [38]: a1 + b1
---------------------------------------------------------------------------
UnicodeDecodeError                        Traceback (most recent call last)
<ipython-input-38-ffd3f356020c> in <module>()
----> 1 a1 + b1

UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 0: ordinal not in range(128)

我们该怎么办呢

In [39]: a1.decode('utf-8') + b1
Out[39]: u'\u5927\u4e2d'

In [40]: 

In [40]: 

In [40]: a1 + b1.encode("utf-8")
Out[40]: '\xe5\xa4\xa7\xe4\xb8\xad'

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值