Quoted -Printableエンコーディングは、任意のバイナリ データを表すために印刷可能な ASCII 文字(英数字と等号)を使用するエスケープ構文で、7 ビットのデータ パス上、または一般的に8 ビット クリーンではない媒体上で8 ビットデータを送信できるようにします。歴史的に、メッセージの転送に使用できるシステムとプロトコルの範囲が広いため、電子メールは 8 ビット クリーンではないと想定されることがよくありましたが、現代のSMTPサーバーはほとんどの場合 8 ビット クリーンであり、この拡張機能をサポートしています。許可されていないオクテットや SMTP 制限を超える行長を含むデータにも使用できます。これは、電子メールで使用するためのMIMEコンテンツ転送エンコーディングとして定義されています。= 8BITMIME
Quoted-Printableエンコーディングは、等号をエスケープ文字=として使用することで機能します。また、一部のソフトウェアでは行長に制限があるため、行長を76に制限します。
MIMEは、ASCII以外の文字エンコーディングを使用して、英語以外の言語のテキストを含むあらゆる種類の情報を電子メールで送信するためのメカニズムを定義しています。ただし、これらのエンコーディングは多くの場合、ASCII範囲外のバイト値を使用するため、8ビットクリーンではない環境で使用するには、さらにエンコードする必要があります。Quoted-Printableエンコーディングは、任意のバイトをASCII文字のシーケンスにマッピングするために使用される方法の1つです。つまり、Quoted-Printable自体は文字エンコーディング方式ではなく、バイト指向の文字エンコーディングの下で使用されるデータ符号化レイヤーです。Quoted-Printableエンコーディングは可逆であり、元のバイト、したがってそれらが表す非ASCII文字を完全に復元できます。
Quoted-printableとBase64エンコーディングは、 MIME RFCの一部であるRFC 2045で定義されている2つのバイナリからテキストへのエンコーディング方法です。 [ 1 ]
自明な「7ビット」および「8ビット」エンコーディングを除けば、MIMEコンテンツ転送エンコーディングはQuoted-PrintableとBase64の2つです。エンコードするテキストに非ASCII文字があまり含まれていない場合、Quoted-Printableでは比較的読みやすくコンパクトなエンコード結果が得られます。 [ a ]一方、入力に8ビット文字が多い場合、Quoted-Printableは読みにくく、非常に非効率的になります。Base64は人間が読める形式ではありませんが、すべてのデータに対して均一なオーバーヘッドがあり、バイナリ形式やラテン文字以外のスクリプトのテキストにはより論理的な選択肢となる場合があります。バイナリの代わりにBase64を使用するトレードオフは、Base64を使用すると送信されるデータ量が大幅に増加することです。[ 2 ]
任意の 8 ビット バイト値は、3 文字でエンコードできます。1 文字の後に、バイトの数値を表す=2桁の 16 進数 (0 ~ 9 または A ~ F) が続きます。たとえば、ASCIIフォーム フィード文字 (10 進数 12) は で表され=0C、ASCII 等号 (10 進数 61) は で表す必要があります。印刷可能な ASCII 文字または行末文字(ただし、 も含む)=3Dを除くすべての文字は、この方法でエンコードする必要があります。=
=印刷可能なすべてのASCII文字(10進数値が33~126)は、 (10進数61、16進数3D、したがって)を除いて、それ自体で表現できます=3D。
ASCIIのタブ文字とスペース文字(10進数値はそれぞれ9と32)は、エンコードされた行の末尾に現れる場合を除き、単独で表現できます。末尾に現れる場合は、=09(タブ)または=20(スペース)としてエスケープするか、エンコードされた行の最後の文字として(ソフト改行)を後に付ける=必要があります。この最後の方法は、タブ文字またはスペース文字がエンコードされた行の最後の文字になるのを防ぐため、有効です。
エンコードされるデータに意味のある改行が含まれている場合、それらはASCII CR LFシーケンスとしてエンコードする必要があり、元のバイト値として直接エンコードすることも、符号を介してエンコードすることもできません。逆に、バイト値13と10が(例えばメディアタイプ[ 3 ]=で)行末以外の意味を持つ場合、それぞれととしてエンコードする必要があります。=0D=0A
Quoted-Printable エンコードされたデータの行は 76 文字を超えてはなりません。エンコードされたテキストを変更せずにこの要件を満たすために、必要に応じてソフト改行を追加できます。ソフト改行は=エンコードされた行の末尾にあり、デコードされたテキストでは改行として表示されません。[ 3 ]また、これらのソフト改行により、RFC 821 [4] および RFC 2821 [5] で許可されているように、一部のSMTPソフトウェアの 1 行あたり 1000 文字の制限など、行のサイズが制限されている環境で、改行なし (または非常に長い行を含む) のテキストをエンコードする こともできます。
メッセージヘッダーでは、Quoted-Printable を若干修正したバージョンが使用されます。
以下の例は、発音記号( éなど)が付いた文字が頻繁に出現するフランス語のテキスト(UTF-8でエンコード)です。
J'interdis aux Marchands de vanter trop leurs Marchandises。車は font= vite p=C3=A9dagogues et t'enseignent comme but ce qui n'est paress qu= 'un moyen, et trompant ainsi sur la Route =C3=A0 suivre les voil=C3=A0 b= ient=C3=B4t qui te d=C3=A9gradent、車は、最も一般的な音楽を意味します = fabriquent pour te la Vendre une =C3=A2me vulgaire。 =E2=80=94=E2=80=8Aアントワーヌ・ド・サンテグジュ=C3=A9ry、城塞 (1948)
これは以下の引用文をエンコードしたものです。
J'interdis aux Marchands de vanter trop leurs Marchandises。車は、最も本質的なものであると同時に、最も本質的なものであり、ルート・ア・スイヴル・レ・ヴォイル・ビアント・キ・テ・デグラデント、車は、ヴァルゲイルの音楽とファッションを注ぐものです。ヴァルゲイル。
—アントワーヌ・ド・サン=テグジュペリ、城塞(1948)
{{cite web}}: CS1 maint: url-status (リンク)