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 编码字。语法是=?字符集?传输编码?编码数据?=。传输编码是Base64 或Quoted-printable。

解码它:

  1. 将编码的单词分成 3 个部分。
  2. byte[]根据其传输编码(第二部分)将数据(第三部分)解码为。在这种情况下,使用了 Q 编码,因此将=xx序列替换为相应的八位字节。这为您提供了两个字节数组 [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 字符的尾字节,第二个以尾字节开头。但结合起来,它们是有效的 UTF-8,并解码为字符串Thầy_gửi_bài_tập_cho_em_với. (谷歌翻译为“老师让我去锻炼”。)

于 2011-03-26T16:56:51.873 回答
6

这在 RFC 2047 中定义: https ://www.rfc-editor.org/rfc/rfc2047

请参阅第 4 节关于编码。我不确定基础框架中是否有任何东西可以正确处理/处理这个问题。

编辑:这是一个人的尝试:http: //vsevolodp.blogspot.com/2010/11/how-to-decode-encoded-word-header.html

于 2011-03-26T18:04:24.223 回答