19.9. quopri — 编码与解码经过 MIME 转码的可打印数据

源代码: Lib/quopri.py


此模块会执行转换后可打印的传输编码与解码,具体定义见 RFC 1521: 「MIME (Multipurpose Internet Mail Extensions) Part One: Mechanisms for Specifying and Describing the Format of Internet Message Bodies」。 转换后可打印的编码格式被设计用于只包含相对较少的不可打印字符的数据;如果存在大量这样的字符,通过 base64 模块所提供的 base64 编码方案会更为紧凑,例如当发送图片文件时。

quopri.decode(input, output, header=False)

解码 input 文件的内容并将已解码二进制数据结果写入 output 文件。 inputoutput 必须为 二进制文件对象。 如果提供了可选参数 header 且为真值,下划线将被解码为空格。 此函数可用于解码“Q”编码的头数据,具体描述见 RFC 1522: 「MIME (Multipurpose Internet Mail Extensions) Part Two: Message Header Extensions for Non-ASCII Text」。

quopri.encode(input, output, quotetabs, header=False)

Encode the contents of the input file and write the resulting quoted-printable data to the output file. input and output must be binary file objects. quotetabs, a flag which controls whether to encode embedded spaces and tabs must be provideda and when true it encodes such embedded whitespace, and when false it leaves them unencoded. Note that spaces and tabs appearing at the end of lines are always encoded, as per RFC 1521. header is a flag which controls if spaces are encoded as underscores as per RFC 1522.

quopri.decodestring(s, header=False)

类似 decode(),区别在于它接受一个源 bytes 并返回对应的已解码 bytes

quopri.encodestring(s, quotetabs=False, header=False)

类型 encode(),区别在于它接受一个源 bytes 并返回对应的已编码 bytes。 在默认情况下,它会发送 False 值给 encode() 函数的 quotetabs 形参。

也參考

模块 base64
编码与解码 MIME base64 数据