Quoted-printable

（とも呼ばれる）は、印字可能な文字(例えば、英数字や等号「=」)を使用した符号化方式であり、8ビットデータを7ビットデータパスで転送するためのものである。インターネット電子メールで使用できるようにするため、 として定義されている。

 概要 
基本的なインターネット電子メール転送プロトコルであるSMTPでは、文字のみがサポートされている（）。では、電子メールで文字以外の情報を送信するためのメカニズムを定義している。これには、文字列中に英語で使われない文字が含まれる場合に、以外の文字符号化方式を使用して扱うことが含まれる。しかしながら、これらの文字符号化方式では範囲外の値が頻繁に使用されるので、電子メールで適切に使用できるようにするためには、さらに符号化する必要がある。符号化方式は、任意のバイト値を一連の文字に変換するための方式である。この符号化方式は可逆変換であり、符号化されたバイト値が表す元のバイト値、つまり非文字に復元することができる。

とは、2つの基本的な  である。入力文字列のほとんどが文字である場合は、で符号化した結果をほとんどそのまま読むことができ、データサイズも小さくなる。一方、入力文字列のほとんどがではない場合は、を使用してもそのまま読むことはできず、サイズ効率も非常に悪い。はそのまま読める方式ではないが、どのようなデータに対してでもサイズ効率は一定である。それで、バイナリ形式データやラテン文字ではない言語に対しては、を選択するのが道理にかなっている。

電子メールクライアントによっては、文字列を復号するときに、行末にドットがあると誤動作する場合がある。

 Quoted-printableの符号化 
任意の8 ビットバイト値は、3文字に符号化してよい。これは、「=」の後ろにそのバイトの数値を表す2桁の16進数文字(0から9またはAからF)を付けたものである。例えば、の改ページ（NP）文字（10進数で12）は「=0C」と表される。また、US-ASCIIの等号（10進数で61）は「=3D」になる。印字可能な文字以外のすべての文字、および改行文字はこのようにして符号化しなければならない。

すべての印字可能な文字（10進数で33から126）はそのまま変換なしに表してよい。ただし、「=」（10進数で61）だけは例外である。

のタブ文字（10進数で9）およびスペース文字（10進数で32）はそのまま変換なしに表してよいが、行末に現れた場合だけは例外である。これらの文字が行末に現れた場合は「=09」（タブ）および「=20」（スペース）に符号化されることになる。

テキスト中で行の終わりを意味するバイト列は、DOSやWindowsでは「」、UNIXやUnix系では「」、第9版までの古い MacOSやMicroware OS-9では「」であるなど、システムによって異なるが、それらはまとめて「改行」と呼ばれる。符号化処理中のテキストの改行は Quoted-Printable 符号では、それがテキストデータであることを前提とする場合には、システムの違いに無関係に ASCIIの「」の並び対応させる決まりである。 Quoted-Printable符号の「」をテキストに戻す場合には、システムがそれぞれの改行を意味するバイト列に復号しなければならない。

+改行を伴うテキストの符号化と復号化の例符号化前（古いMacOS など）Quoted-printable 符号復号後（UNIXなど）Sell in Mayand go away.Sell in Mayand go away.Sell in Mayand go away.

符号化処理するデータの中の「」を複号後も「」にさせたり、符号化処理するデータの中の「」を復号後も「」にさせたい場合には、 Quoted-Printable 符号化時には、それぞれ、「」は「=0D」に、「」は「=0A」に符号化しなければならない。

 で符号化したデータの行は、76文字を超えてはならない。符号化した文字列を変換せずにこの要件を満たすため、必要に応じてソフト改行 が追加される。ソフト改行は符号化後の行末に「=」が置かれたものであり、復号した文字列には改行は現れない。

 参照 
 (obsolete)
 (MIME)

Category:インターネットのプロトコル
Category:電子メールのプロトコル
Category:データシリアライゼーションフォーマット
1521