Python 编解码【初探】

编码是为了兼容字符集之间的通用性,通常可以编码的地方有:
1、系统默认编码
2、程序运行环境的编码
3、源码文件自身的编码

4、程序中的字符串编码


对于python也是一样的:

通常中文操作系统的编码都是gbk

python运行环境默认的编码是ascII

源文件的编码可以自己确定【# -*- coding: gbk -*-】,不设置就是默认的python编码

程序内容的编码可以通过python提供的几个函数来进行转换。【如unicode】


通常python编解码的过程是这样的:

接受到一个字符--如果预先没有编码则使用unicode编码--》如果和系统的字符集不一致-->则隐性转换为系统默认的字符集--》使用系统的编码方式解码字符串

python中程序内部编解码的方式:

>>s='中文'
>>type(s) #查看s的字符类型
>>s #查看字符原码
>>print s  #调用系统字符集解码

>>unicode(s,'gbk')  #解码为unicode
>>type(s)
>>s
>>print s

>>s.encode('utf-8') ##编码为utf8
>>type(s)
>>s
>>print s

>>s.decode('utf-8') ##解码utf8,默认的编码方式是unicode
>>type(s)
>>s
>>print s

指定的编码字符只能用指定的编码方式解码,否则会报错。所有字符集中python的中间字符集是unicode。即如果gbk想转换为utf-8的路径不是直接转换,而是gbk->unicode->utf-8.不能直接gbk->utf-8


另外对于一些包含特殊字符的编码,直接解码可能会报错,可以使用对于的参数来设置。如
s.decode('utf-8',ignore)忽略其中有异常的编码,仅显示有效的编码
s.decode('utf-8',replace)替换其中异常的编码为?,这个相对来可能一眼就知道那些字符编码出问题了。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

上帝De助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值