小心python中的坑------字符编码

1.python中的默认编码格式

python2中使用ASCII,python3中使用unicode格式
获取当前python默认编码格式的方法:

import sys
print(sys.getdefaultencoding())
#这两个博客写的很详细
#http://www.cnblogs.com/yuanchenqi/articles/5956943.html
#http://www.diveintopython3.net/strings.html
   #unicode 分为 utf-32(占4个字节),utf-16(占两个字节),utf-8(占1-4个字节), utf-16就是现在最常用的unicode版本,不过在文件里存的还是utf-8,因为utf8省空间

   #在py3中encode,在转码的同时还会把string 变成bytes类型(socket通信中只能传输bytes类型的字符串),decode在解码的同时还会把bytes变回string

 msg = "我爱北京天安门"
msg_utf= msg.encode("gb2312")   # 将unicode字符串编码为gb2312格式
print(msg_utf)
gb2312_to_gbk = msg_utf.decode("gb2312").encode("gbk")  #  将gb2312格式字符串先解码为unicode格式,再
编码为gbk格式
print(msg)
print(gb2312_to_gbk)

#注:python中的字符编码转换:
默认的unicode可将字符串decode('utf-8')生成utf-8以及gbk等格式的二进制bytes类型
utf-8等可通过decode('utf-8')生成unicode格式的字符串。

![转自以下alex老师的博客](https://img-blog.csdnimg.cn/20191117223242438.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMjc3NDM4,size_16,color_FFFFFF,t_70)





 





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值