python把字符进行编码要什么函数,Python字符串操作集锦之字符串编码解码函数

15、字符串的编码和解码的函数

15.1 str.encode([encoding,[errors]]):字符串编码

将Unicode编码转换成其他编码的字符串,如str2.encode(‘gbk2312’),表示将Unicode编码的字符串str2转换成gbk2312的编码。

encoding可以有多种值,比如gb2312 、gbk、 gb18030、big5、base64等。

errors默认值为”strict”,意思是UnicodeError。可能的值还有’ignore’, ‘replace’, ‘xmlcharrefreplace’, ‘backslashreplace’ 和所有的通过codecs.register_error注册的值。这一部分内容涉及codecs模块。

>>>'abd'.encode('base64')

'YWJk\n'

15.2 str.decode([encoding,[errors]]):字符串解码

将其他编码的字符串解码成Unicode编码的字符串,如str1.decode(‘gbk’),表示将gbk编码的字符串str1解码成Unicode编码。

>>>'YWJk\n'.decode('base64')

'abd'

字符串在Python2.x版本内部是以ASCII编码表示的,Python3.x默认是unicode编码。因此,有时候会遇到编码转换的问题,通常是以unicode作为中间编码,即先将其他编码的字符串解码(decode)成Unicode,再从Unicode编码(encode)成另一种编码。

因此在转码时,一定要弄明白字符串str是什么编码,然后decode成Unicode,然后再encode成其他编码。代码中字符串的默认编码与代码文件本身的编码一致。

如果字符串是这样定义的:str1 = u’abcd’

则该字符串的编码就被指定成为Unicode了,此时如果再对其解码的话,就会出错。因此,这种情况下,只需要直接使用encode方法进行编码即可。

通常在编码前需要对字符串的是否是Unicode编码进行判断:

isinstance(str1, unicode) #判断字符串是否是unicode编码

有时候我们也需要查看一下系统的编码:

import sys

print sys.getdefaultencoding() #获取系统的编码

编码和解码时,可以用第二个参数控制错误处理的策略,默认的参数就是strict,代表遇到非法字符时抛出异常; 如果设置为ignore,则会忽略非法字符; 如果设置为replace,则会用?取代非法字符; 如果设置为xmlcharrefreplace,则使用XML的字符引用。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值