Python字符串操作集锦之字符串编码解码函数
2015-08-08 08:45
716 查看
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模块。
15.2 str.decode([encoding,[errors]]):字符串解码
将其他编码的字符串解码成Unicode编码的字符串,如str1.decode(‘gbk’),表示将gbk编码的字符串str1解码成Unicode编码。
字符串在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编码
有时候我们也需要查看一下系统的编码:
编码和解码时,可以用第二个参数控制错误处理的策略,默认的参数就是strict,代表遇到非法字符时抛出异常;
如果设置为ignore,则会忽略非法字符;
如果设置为replace,则会用?取代非法字符;
如果设置为xmlcharrefreplace,则使用XML的字符引用。
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的字符引用。
相关文章推荐
- Python字符串操作集锦之字符串映射表
- Python中dict详解
- Python list 操作
- python读写配置文件
- python实现单词计数的mapreduce
- python的win32操作
- python的一些图像操作
- python备用
- python开发_counter()
- python开发--random
- Python实现多线程抓取妹子图
- python实现下载指定网址所有图片的方法
- python实现RSA加密算法
- Python标准库(上)
- 用For循环实现Python下的花样对称输出
- Python函数操作集锦之字符串测试、判断函数
- Python实用入门
- Python字符串操作之字符串分割与组合
- python select模块实现并发
- Python requests库解析中文网页乱码处理方法