# 19.9. `quopri` - 对MIME引用的可打印数据进行编码和解码

源代码： Lib / quopri.py

该模块执行在 RFC 1521中定义的引用可打印的传输编码和解码：“MIME（Multipurpose Internet Mail Extensions）Part One：Mechanisms for Specifying and Describing the Format of互联网消息机构“。引用可打印编码设计用于存在相对较少的不可打印字符的数据；如果有许多这样的字符，例如当发送图形文件时，通过`base64`模块可用的base64编码方案更紧凑。

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

  解码输入文件的内容，并将生成的解码二进制数据写入输出文件。输入和输出必须是binary file objects。如果可选参数头存在且为真，则下划线将解释为空格。这用于解码 RFC 1522中描述的“Q”编码报头：“MIME（多用途Internet邮件扩展）第二部分：非ASCII文本的消息头扩展“。

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

  编码输入文件的内容，并将生成的可引用数据写入输出文件。输入和输出必须是binary file objects。quotetabs，必须提供控制是否编码嵌入空格和制表符的标志，如果为true，则编码此类嵌入的空格，如果为false，则使它们未编码。请注意，出现在行尾的空格和制表符总是按 RFC 1521编码。 头是根据 RFC 1522控制是否将空格编码为下划线的标志。

`quopri.``decodestring`(s, header=False)

  类似于`decode()`，除了它接受源`bytes`并返回对应的解码的`bytes`。

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

  像`encode()`，除了它接受源`bytes`并返回相应的编码的`bytes`。默认情况下，它向`encode()`函数的quotetabs参数发送一个False值。

也可以看看

模块`base64`
  编码和解码MIME base64数据