Redis in Python:Redis 在Python2和Python3中文编码的区别

前言:

Python把中文字符串保存到Redis,中文字符串会被转换为字节流的形式,Python从Redis的获取的中文字符串值是以字节流的形式的,所以想要显示中文还需要解码。Python2从Redis获取的值是str类型,而Python3则是bytes类型,见下面两段代码。从下面两段代码可以看出中文字符串“ 计算机”在Python2是以 '\xbc\xc6\xcb\xe3\xbb\xfa'形式存在的,在Python3中是以 b'\xe8\xae\xa1\xe7\xae\x97\xe6\x9c\xba',也就是编码方式不一样,所以解码为中文的方式也不一样。

Python2:
>>> import redis
>>> r = redis.Redis()
>>> r.set('test', '计算机')
True
>>> r.get('test')
'\xbc\xc6\xcb\xe3\xbb\xfa'
>>> a = r.get('test')
>>> type(a)
<type 'str'>
>>> 

Python3:
 
 
>>> import redis
>>> r = redis.Redis()
>>> r.set('foo', '计算机')
True
>>> r.get('foo')
b'\xe8\xae\xa1\xe7\xae\x97\xe6\x9c\xba'
>>> a = r.get('foo')
>>> type(a)
<class 'bytes'>
>>> 

安装:

下面会用到chardet模块,安装命令:
pip install chardet

Python2解码中文:

Python2中Redis返回的字符串是str类型,所以可以通过str.decode函数来解码,解码为GB2312。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值