# 18.15. `quopri` --- MIME quoted-printable 形式データのエンコードおよびデコード

ソースコード: Lib/quopri.py

このモジュールは RFC 1521: "MIME (Multipurpose Internet Mail Extensions) Part One: Mechanisms for Specifying and Describing the Format of Internet Message Bodies" で定義されている quoted-printable による伝送のエンコードおよびデコードを行います。 quoted-printable エンコーディングは比較的印字不可能な文字の少ないデータのために設計されています; 画像ファイルを送るときのように印字不可能な文字がたくさんある場合には、 `base64` モジュールで利用できる base64 エンコーディングのほうがよりコンパクトになります。

`quopri.``decode`(input, output[, header])

  ファイル input の内容をデコードして、デコードされたバイナリデータをファイル output に書き出します。 input および output はファイルか、ファイルオブジェクトのインタフェースを真似たオブジェクトでなければなりません。 input は `input.readline()` が空文字列を返すまで読みつづけられます。オプション引数 header が存在し、かつその値が真である場合、アンダースコアは空白文字にデコードされます。これは RFC 1522: "MIME (Multipurpose Internet Mail Extensions) Part Two: Message Header Extensions for Non-ASCII Text" で記述されているところの "Q"-エンコードされたヘッダをデコードするのに使われます。

`quopri.``encode`(input, output, quotetabs)

  ファイル input の内容をエンコードして、quoted-printable 形式にエンコードされたデータをファイル output に書き出します。 input および output はファイルか、ファイルオブジェクトのインタフェースを真似たオブジェクトでなければなりません。 input は `input.readline()` が空文字列を返すまで読みつづけられます。 quotetabs はデータ中に埋め込まれた空白文字やタブを変換するかどうか制御するフラグです; この値が真なら、それらの空白をエンコードします。偽ならエンコードせずそのままにしておきます。行末のスペースやタブは RFC 1521 に従って常にエンコードされるので注意してください。

`quopri.``decodestring`(s[, header])

  `decode()` に似ていますが、文字列を入力として受け取り、デコードされた文字列を返します。

`quopri.``encodestring`(s[, quotetabs])

  `encode()` に似ていますが、文字列を入力として受け取り、エンコードされた文字列を返します。 quotetabs はオプション (デフォルトは 0 です) で、この値はそのまま `encode()` に渡されます。

参考

`mimify` モジュール
  MIME メッセージを処理するための汎用ユーティリティ。
`base64` モジュール
  MIME base64 形式データのエンコードおよびデコード