在邮件客户端中解码字段FROM

时间:2013-12-01 15:57:18

标签: android encoding javamail pop3 decoding

我从昨天开始就被困在这个问题上,所以希望有人可以提供帮助。

我正在编写一个应该从POP3服务器读取电子邮件的应用程序。实际上该应用程序正在运行,但我有一个问题,对于某些消息,我得到的内容类似于“From”字段:

=?UTF-8 Q + AAAA = 20bbbb?=

那是什么?我可以读取发件人名称(即,在示例中,“aaaabbbb”),但我该如何解码呢?

我必须在TextView中显示这个字符串,也许我可以设置textview的属性?

非常感谢你们 克里斯蒂

编辑:我发现了另一个帖子("=?utf-8?Q?" appended while fetching emails),有人建议使用PHP“mb_decode_mimeheader”函数来获取没有那种无聊标题的数据...... Javamail是否有任何等价物? / p>

编辑: 好的,在这篇文章中找到了解决方案:Decoding UTF-8 email subject?

最后一个答案,MimeUtility.decodeText对我来说非常合适。

3 个答案:

答案 0 :(得分:1)

所以我们走了。

这是我发现的:来自here我明白这些标记是什么以及为什么它们在那里。

然后here on SO我找到了一个对我有用的解决方案......一开始。经过进一步的检查,我发现一些未被decodeText方法正确解码的电子邮件,然后我找到了原因:有时候,实际上我不知道为什么,主题被引号括起来,每次都发生在decodeText上没用。

解决方法:只需删除字符串中的所有引号(如果您的字符串中有更多内容,则可以删除开头和结尾处的引号):

string2beConverted = string2beConverted.replace(“\”“,”“);   String encodedString = MimeUtiliy.decodeText(string2beConverted);

克里斯蒂

答案 1 :(得分:0)

我认为它是UTF8图像代码。如果您收到过主题行中有图像的电子邮件,如心脏或其他东西。

以下是类似UTF8图片字符串的链接: http://thisthingiscrazy.com/a-collection-of-email-subject-utf-8-images/

如果您在TextView中显示此内容,则此SO链接可能有所帮助: How do I go about setting TextView to display UTF-8 when the String is not an embedded Resource?

答案 2 :(得分:0)

您使用的是getFrom方法吗?它应该为您处理所有解码。它将返回一个Address对象数组,您可以将其转换为InternetAddress对象,然后提取电子邮件地址和个人名称字段。个人姓名字段将为您解码。