PYTHON编码和解码

从第一天接触Python就对解码和编码的问题很困惑,最近在学习网络数据爬虫,又遇到了一系列的解码和编码问题,处理中文编码问题真的好麻烦,这次真的需要好好填坑了。
详细内容下面的文章:
Python字符串的编码与解码(encode与decode)

编码和解码的内涵

字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即现将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另外一种编码。

decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode(‘gb2312’),表示将gb2312编码的字符串转换成unicode编码。
encode的作用是将unicode编码转换成其他编码的字符串,如str2.encode(‘gb2312’),表示将unicode编码的字符串转换成gb2312编码。
在某些IDE中,字符串的输出总是出现乱码,甚至错误,其实是由于IDE的结果输出控制台自身不能显示字符串的编码,而不是程序本身的问题。

#-*-coding:utf-8-*- 
Str = "this is string example....wow!!!";
Str = Str.encode('base64','strict');#将字符串按照base64进行编码

print "Encoded String: " + Str#直接输出是bsae64编码
print "Decoded String: " + Str.decode('base64','strict')#将字符串解码成unicode,显示中文字符串

不要对str使用解码,不要对unicode使用解码

文件处理,IDE和控制台

我们可以将Python看作一个水池,一个入口,一个出口。入口处,全部转换成Unicode,池中全部使用unicode处理,出口处,再转成目标编码。
IDE和控制台报错,原因是print时,编码和IDE自身编码不一致导致的,输出时转换成一致的就可以正常输出。

建议

  1. 规范编码:统一环境编码,文本编辑器,文件编码和数据库表编码
  2. 保证代码源文件编码:py文件的默认编码是ASCII,在源代码文件中,如果用到非ASCII字符,需要在文件头部进行编码声明
  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值