2

ヘッダーと本文の文字エンコードが異なるメールは有効ですか? ユースケース: メールの処理中に、ヘッダーの文字エンコードを個別に確認する必要がありますか? それとも、本文の文字エンコードを確認するだけで十分ですか? 誰かがこれを理解する方法について私を導くことができますか? 前もって感謝します!

4

1 に答える 1

9

メール ヘッダーは ASCII 文字セットを使用する必要があります。ヘッダー フィールドに別のエンコードを使用する場合は、エンコードされた単語の構文を使用する必要があります: http://en.wikipedia.org/wiki/MIME#Encoded-Word

電子メール本文は、それを転送するメール サーバーで 8 ビット MIME が有効になっている場合にのみ、別のエンコードで直接エンコードできます (現在、すべてのメール サーバーで有効になっている必要がありますが、保証されていません)。それ以外の場合は、本文を転送エンコードでエンコードする必要があります (引用-印刷可能または base64)

文字セットはケースごとに異なる場合があります。つまり、エンコードされたすべての単語を異なる文字セットで、すべてのメール部分を異なる文字セットでエンコードしたり、異なる転送エンコーディングを使用したりすることもできます。

たとえば、次のことができます。

Subject: =?UTF-8?Q?Zg=C5=82oszenie?= //header value in UTF-8 encoded with quoted printable

およびエンコードされた本文:

Content-Type: text/plain; charset="iso-8859-2"
Content-Transfer-Encoding: base64

WmG/87PmIEfqtmyxIEphvPE=

異なる文字セット、同じメール内の異なる転送エンコーディング、問題ありません。

経験から、そのようなメールは非常に一般的であると言えます。さらに悪いことに、Content-Type ヘッダーに 1 つの文字セットがあり、html body メタ タグに別の文字セットが含まれている電子メールを受け取ることがあります。

Content-Type: text/html; charset="iso-8859-2"

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charser=utf-8">

実際に使用される文字セットを推測するのはあなた次第です。おそらく、meta タグにあるものです。

何も仮定しないでください。すべてを期待してください。囚人を連れて行かないでください。これがスパルタです。

于 2014-11-20T14:01:04.553 に答える