Subject: Re:
=?UTF-8?Q?Th=E1=BA=A7y_g=E1=BB=ADi_b=C3=A0i_t=E1=BA=ADp_cho_em_v=E1=BB?=
=?UTF-8?Q?=9Bi.?=
この件名ヘッダーのメールを受け取りました。どのようにデコードする必要がありますか?
これは、MIMEでエンコードされた単語です。構文は、=?
charsettransfer ?
-encodingencoded ?
-data?=
です。転送エンコーディングはB
ase64またはQ
uoted-printableです。
デコードするには:
byte[]
転送エンコーディング(2番目の部分)に従ってデータ(3番目の部分)をにデコードします。この場合、Qエンコーディングが使用されるため、=
xxシーケンスを対応するオクテットに置き換えます。これにより、2バイト配列[84、104、225、186、167、121、95、103、225、187、173、105、95、98、195、160、105、95、116、225、186、 173、112、95、99、104、111、95、101、109、95、118、225、187]および[155、105、46]。この特定の例では、エンコードされた単語の両方が無効です。最初の単語には3バイトのUTF-8文字の末尾のバイトがなく、2番目の単語は末尾のバイトで始まります。しかし、組み合わせると、それらは有効なUTF-8であり、文字列にデコードされますThầy_gửi_bài_tập_cho_em_với.
(Googleは「Teacherが私に運動をさせてくれました」と翻訳しています)。
これは RFC 2047 で定義されています: https://www.rfc-editor.org/rfc/rfc2047
エンコーディングについては、セクション 4 を参照してください。これを処理する/これを正しく処理する基本フレームワークに何かがあるかどうかはわかりません。
編集:これは、これに対する1人の試みです: http://vsevolodp.blogspot.com/2010/11/how-to-decode-encoded-word-header.html