越南电子邮件主题编码?

gia*_*dau 1 c# email mime imaplib

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.?=
Run Code Online (Sandbox Code Playgroud)

我收到了一封有此主题标题的电子邮件.怎么解码?

dan*_*n04 6

这是一个MIME编码字.语法是=?charset ?transfer-encoding ?encoded-data ?=.传输编码是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. (Google翻译为"老师让我去锻炼.")

  • 不要忘记编码数据部分中的原始_c是用空格字符替换的. (2认同)

Joe*_*Joe 6

这在RFC 2047中定义:http: //tools.ietf.org/html/rfc2047

有关编码,请参阅第4节.我不确定基础框架中是否存在处理此问题的任何内容/正确处理此问题.

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