Python encode方法:XX.encode(‘utf-8’)究竟是什么?
在Python学习中,我们经常会碰到这些内容:
S.encode([encoding='utf-8'][,errors='strict'])
这时,我们会想等会去看看这究竟是什么?然后,就没有等会了。。。
当然,也有人会觉得记就完事了。但不管怎样,我在这里简单讲一下它,希望帮助到大家。
一.描述
encode() 方法以指定的编码格式编码字符串,默认编码为 ‘utf-8’。
对应的解码方法:bytes decode() 方法,bytes:字节。该方法返回编码后的字符串,它是一个 bytes 对象
实例:
二.语法
S.encode([encoding='utf-8'][,errors='strict'])
encoding – 可选参数,要使用的编码,默认编码为 ‘utf-8’。
errors – 可选参数,设置不同错误的处理方案。默认为 ‘strict’,意为编码错误引起一个UnicodeError。 其他可能得值有 ‘ignore’, ‘replace’, ‘xmlcharrefreplace’, ‘backslashreplace’ 以及通过 codecs.register_error() 注册的任何值
(在使用encode()方法时,报错原因一般都是errors参数问题,改为‘ignore’就好了)
小结:
bytes通过decode()转换为str(字符串)
str通过encode()转换为bytes(二进制)
在python3中,encode()和decode()默认使用UTF-8
ASCII 、unicode 是字符集,utf-8是字符集的编码方式。
utf-8 是 unicode 字符集一种编码方式。
python3使用unicode字符集,而python2使用ASCII,所以python2使用中文很麻烦
这里特别需要注意的,是什么时候要用的encode()返回的byte对象(建议再看看python的编码问题)