C# 越南语邮件主题编码?

C# 越南语邮件主题编码?,c#,email,mime,imaplib,C#,Email,Mime,Imaplib,我收到了一封带有此主题标题的电子邮件。它应该如何解码?这是一个密码。语法为=?字符集?传输编码?编码数据?=。传输编码是Base64或带引号的可打印编码 要解码它: 将编码的单词分成三部分。 根据传输编码第二部分,将数据第三部分解码为字节[]。在这种情况下,使用Q编码,因此将=xx序列替换为相应的八位字节。这将提供两个字节数组[84、104、225、186、167、121、95、103、225、187、173、105、95、98、195、160、105、95、116、225、186、173、11

我收到了一封带有此主题标题的电子邮件。它应该如何解码?

这是一个密码。语法为=?字符集?传输编码?编码数据?=。传输编码是Base64或带引号的可打印编码

要解码它:

将编码的单词分成三部分。 根据传输编码第二部分,将数据第三部分解码为字节[]。在这种情况下,使用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字节UTF-8字符的尾字节,第二个字以尾字节开头。但结合起来,它们是有效的UTF-8,并解码为字符串Thầ尤格ử我知道ập_cho_em_vớ我谷歌将其翻译为老师让我做的练习。

这是一个很好的例子。语法为=?字符集?传输编码?编码数据?=。传输编码是Base64或带引号的可打印编码

要解码它:

将编码的单词分成三部分。 根据传输编码第二部分,将数据第三部分解码为字节[]。在这种情况下,使用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字节UTF-8字符的尾字节,第二个字以尾字节开头。但结合起来,它们是有效的UTF-8,并解码为字符串Thầ尤格ử我知道ập_cho_em_vớ我谷歌将其翻译为老师让我做的练习。

这在RFC 2047中有定义:

参见第4节编码。我不确定基本框架中是否有任何东西能够正确处理这个问题


编辑:以下是一个人的尝试:

这是RFC 2047中定义的:

参见第4节编码。我不确定基本框架中是否有任何东西能够正确处理这个问题


编辑:以下是一个人的尝试:

不要忘记编码数据部分中的原始字符将被替换为空格字符。RFC 2047中的相关位:每个“编码字”必须表示整数个字符。多八位字符不能在相邻的“编码字”之间拆分。不要忘记,编码数据段中的原始字符将被空格字符替换。RFC 2047中的相关位:每个“编码字”必须表示整数个字符。一个多八位元字符不能在相邻的“编码字”之间拆分。事实上,这是我的博客文章:如果你需要一些缺少的功能,请告诉我。请随意使用此代码。在我们构建了自己的代码后,我发现了您的代码,这会为我节省一些工作!谢谢你把这样的代码放到网上,假设可以借用的话。这是我的博客帖子:如果你需要一些缺少的功能,请告诉我。请随意使用此代码。在我们构建了自己的代码后,我发现了您的代码,这会为我节省一些工作!谢谢你把这样的代码放在网上,假设可以借用的话。现代的电子邮件客户端将透明地解码这样的编码单词。大多数电子邮件框架都有处理它们的机制。现代电子邮件客户端将透明地解码这样的编码单词。大多数电子邮件框架都有处理它们的机制。
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.?=