# `quopri` --- 編碼和解碼 MIME 可列印字元資料

原始碼：Lib/quopri.py

該模組根據 RFC 1521：「MIME（多功能網際網路郵件擴充）第一部分：指定和描述網際網路訊息正文格式的機制」中的定義來執行可列印字元 (quoted-printable) 傳輸編碼和解碼。可列印字元編碼是為不可列印字元相對較少的資料而設計的；如果存在許多此類字元（例如發送圖形檔案時），則透過 `base64` 模組提供的 Base64 編碼方案會更加簡潔。

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

  解碼 input 檔案的內容並將解碼後的二進位資料寫入 output 檔案。 input 和 output 必須是二進位檔案物件。如果可選參數 header 存在且為 true，則底線將被解碼為空格。這用於解碼如 RFC 1522：「MIME（多功能網際網路郵件擴充）第二部分：非 ASCII 文字的訊息標頭擴充」中所述的 "Q" 編碼標頭。

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

  對 input 檔案的內容進行編碼，並將生成的可列印字元資料寫入 output 檔案。 input 和 output 必須是二進位檔案物件。 quotetabs，一個非可選旗標，控制是否對嵌入的空格和製表符號 (tab) 進行編碼；當為 true 時，它將對此類嵌入的空白進行編碼，當為 false 時，它將不對它們進行編碼。請注意，出現在列尾的空格和製表符號都會按照 RFC 1521 進行編碼。 header 是一個旗標，用於控制空格是否按照 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 資料進行編碼和解碼