python字符编码解码,文件编码解码。

一.几个特别容易混淆和弄不清的概念

参考http://www.cnblogs.com/guosq/p/6378639.html
在python中,编码解码其实是不同编码系统间的转换,默认情况下,转换目标是Unicode,即编码unicode→str,解码str→unicode,其中str指的是字节流,而str.decode是将字节流str按给定的解码方式解码,并转换成utf-8形式,u.encode是将unicode类按给定的编码方式转换成字节流str。

1.对于字符的编码解码

普通字符串,unicode字符串,以指定方式编码的字符序列。

2.对于文件的编码解码

文件的编码就是文件所存储字符串的编码方式


3.python代码第一行的# -*- coding:utf-8 -*-


4.sys.setdefaultencoding


二.常见错误类型

当我调用str1.decode('utf-8')的时候
    return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xc4 in position 0: invalid continuation byte

三.常见使用方式

1.将unicode字符转成utf-8编码的序列

>>> u'你好'.encode('utf-8')
'\xe4\xbd\xa0\xe5\xa5\xbd'

2.将unicode字符转化成gbk编码的序列

>>> u'你好'.encode('gbk')
'\xc4\xe3\xba\xc3'

3.将字符串转化成unicode字符

首先我们无法得知给定的一个字符串是以什么方式编码的。
我们猜测是utf-8编码的,就以utf-8来进行解码 str2.decode('utf-8'),从而得到unicode
若我们猜测是gbk编码的,就以gbk来进行解码,str3.decode('gbk'),从而得到unicode

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值