python之字符转换_Python基础之 一 字符编码及转换

python2 / python3编码转换

先上图一张:

9863ea698989c9dcbe477b76a30072c4.png

说明:python编码转换的流程是 先进行decode解码,然后进行encode编码

解释:

u'你好'  -->带u表示为unicode编码

b'xc4xe3xbaxc3'   --> 带b的表示bytes类型

由于utf8 是unicode的扩展,所以unicode和utf8之间是可以直接打印

注意:所有decode动作都是将已编码文件解码为unicode,然后在进行其他编码格式转换(通过encode)

直接举例说明:

#python3下默认字符编码是unicode

s = '你好'

#将unicode直接转换为gbk

s_gbk = s.encode('gbk')

print(s_gbk)

》b'xc4xe3xbaxc3' 这里输出的b代笔bytes类型

print(s.encode()) 括弧内不带转换编码是默认转换为utf-8

#以下是将gbk编码先解码成unicode,然后在编码成utf-8

gbk_to_utf8 = s_gbk.decode('gbk').encode('utf-8')

print(gbk_to_utf8)

测试实例:

python2 上把gb2312转为utf8,然后在转成gbk

#coding:utf-8

#这里默认是utf-8编码

s = '你好'

#先将汉字解码为unicode,然后编码为gb2312并打印

s_to_gb2312 = s.decode('utf-8').encode('gb2312')

#这里修改终端字符集为gb2312

print s_to_gb2312

#先将gb2312解码为unicode,然后编码为utf8并打印

gb2312_to_utf8 = s_to_gb2312.decode('gb2312').encode('utf-8')

#修改终端字符集为utf8

print gb2312_to_utf8

#先将utf-8解码为unicode,然后在编码为gbk

utf8_to_gbk = gb2312_to_utf8.decode('utf-8').encode('gbk')

#修改终端字符集为gbk

print utf8_to_gbk

python3 上把gb2312转为utf8,然后在转成gbk

#注:如果这样:u'你好',这里的u代表这个为unicode编码

s = '你好'

#由于python3默认是unicode编码,所以直接编码为gb2312

unicode_to_gb2312 = s.encode('gb2312')

#将gb2312先解码为unicode,再编码为utf8

gb2312_to_utf8 = unicode_to_gb2312.decode('gb2312').encode('utf-8')

#将utf8解码为unicode,再编码为gbk

utf8_to_gbk = gb23312_to_utf8.decode('utf-8').encode('gbk')

打印如下:全部为bytes类型,bytes类型只显示编码格式

b'xc4xe3xbaxc3'

b'xe4xbdxa0xe5xa5xbd'

b'xc4xe3xbaxc3'

在上一张python3实例图解:

9d4b27148d2d7ed997869479b36d9ea3.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值