1
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.?=

この件名ヘッダーのメールを受け取りました。どのようにデコードする必要がありますか?

4

2 に答える 2

6

これは、MIMEでエンコードされた単語です。構文は、=?charsettransfer ?-encodingencoded ?-data?=です。転送エンコーディングはBase64またはQuoted-printableです。

デコードするには:

  1. エンコードされた単語を3つの部分に分割します。
  2. 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. 指定されたエンコーディングに従って、これらのバイト配列をデコードします。

この特定の例では、エンコードされた単語の両方が無効です。最初の単語には3バイトのUTF-8文字の末尾のバイトがなく、2番目の単語は末尾のバイトで始まります。しかし、組み合わせると、それらは有効なUTF-8であり、文字列にデコードされますThầy_gửi_bài_tập_cho_em_với. (Googleは「Teacherが私に運動をさせてくれました」と翻訳しています)。

于 2011-03-26T16:56:51.873 に答える
6

これは RFC 2047 で定義されています: https://www.rfc-editor.org/rfc/rfc2047

エンコーディングについては、セクション 4 を参照してください。これを処理する/これを正しく処理する基本フレームワークに何かがあるかどうかはわかりません。

編集:これは、これに対する1人の試みです: http://vsevolodp.blogspot.com/2010/11/how-to-decode-encoded-word-header.html

于 2011-03-26T18:04:24.223 に答える