我从昨天开始就被困在这个问题上,所以希望有人可以提供帮助。
我正在编写一个应该从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对我来说非常合适。
答案 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对象,然后提取电子邮件地址和个人名称字段。个人姓名字段将为您解码。