# Copyright (C) 2001-2006 Python Software Foundation# Author: Barry Warsaw# Contact: email-sig@python.org"""Encodings and related functions."""__all__ = ['encode_7or8bit','encode_base64','encode_noop','encode_quopri',]from base64 import encodebytes as _bencodefrom quopri import encodestring as _encodestringdef _qencode(s):enc = _encodestring(s, quotetabs=True)# Must encode spaces, which quopri.encodestring() doesn't doreturn enc.replace(b' ', b'=20')def encode_base64(msg):"""Encode the message's payload in Base64.Also, add an appropriate Content-Transfer-Encoding header."""orig = msg.get_payload(decode=True)encdata = str(_bencode(orig), 'ascii')msg.set_payload(encdata)msg['Content-Transfer-Encoding'] = 'base64'def encode_quopri(msg):"""Encode the message's payload in quoted-printable.Also, add an appropriate Content-Transfer-Encoding header."""orig = msg.get_payload(decode=True)encdata = _qencode(orig)msg.set_payload(encdata)msg['Content-Transfer-Encoding'] = 'quoted-printable'def encode_7or8bit(msg):"""Set the Content-Transfer-Encoding header to 7bit or 8bit."""orig = msg.get_payload(decode=True)if orig is None:# There's no payload. For backwards compatibility we use 7bitmsg['Content-Transfer-Encoding'] = '7bit'return# We play a trick to make this go fast. If decoding from ASCII succeeds,# we know the data must be 7bit, otherwise treat it as 8bit.try:orig.decode('ascii')except UnicodeError:msg['Content-Transfer-Encoding'] = '8bit'else:msg['Content-Transfer-Encoding'] = '7bit'def encode_noop(msg):"""Do nothing."""
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。