\section{\module{quopri} ---
         MIME quoted-printable 形式データのエンコードおよびデコード}

\declaremodule{standard}{quopri}
\modulesynopsis{MIME quoted-printable 形式ファイルのエンコードおよびデコード。}

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


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

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

\begin{funcdesc}{decodestring}{s\optional{,header}}
\function{decode()} に似ていますが、文字列を入力として受け取り、
デコードされた文字列を返します。
\end{funcdesc}

\begin{funcdesc}{encodestring}{s\optional{, quotetabs}}
\function{encode()} に似ていますが、文字列を入力として受け取り、
エンコードされた文字列を返します。\var{quotetabs} はオプション
(デフォルトは 0 です) で、この値はそのまま\function{encode()} に
渡されます。
\end{funcdesc}


\begin{seealso}
  \seemodule{mimify}{MIME メッセージを処理するための汎用ユーティリティ。}
  \seemodule{base64}{MIME base64 形式データのエンコードおよびデコード}
\end{seealso}
