目的:在处理字符时,如果编码和解码处理不当,就会出现乱码。
环境:ubuntu 16.4 python 3.5.2
情景:因为工作,需要写了一个自动接收邮件并针对特定内容导出到表格的脚本,但收到的邮件源信息一般都是字节信息,需要解码处理,即decode, 如果要发送邮件就需要使用编码encode。
函数:
str.decode(‘解码方式‘)
str.encode(‘编码方式‘)
这里decode接收字符串,并以指定的解码方式解码,如utf-8或gb2312,encode也是相同的操作。如果给的编码或解码方式错误,则会弹出UnicodeDecodeError:错误,可以用try---except来捕捉处理。
以下:
def decode_str(_str): try: _change_str = _str.decode(‘gb2312‘) except UnicodeDecodeError: _change_str = _str.decode(‘utf-8‘)
一般微软中文操作系统都是gb2312的。
本文出自 “RickyHuL” 博客,请务必保留此出处http://rickyh.blog.51cto.com/10934856/1952495
原文:http://rickyh.blog.51cto.com/10934856/1952495