我正在创建电子邮件客户端,当我收到来自黑莓服务器的电子邮件时,它发送文件名为“=?utf-8?B?anBlZ2F0dGFjaG1lbnQuSlBFRw ==?=”但原始文件名是“jpegattachment.JPEG”,有时候当我从其他邮件服务器收到时,我收到了纯文本。 所以我的问题是我可以得到一个可能编码也可能不编码的字符串。
有没有办法,我可以获得字符串的编码并将其解码为纯文本。
输入字符串是“=?utf-8?B?anBlZ2F0dGFjaG1lbnQuSlBFRw ==?=”或“jpegattachment.JPEG”输出应为“jpegattachment.JPEG”。
任何想法?
答案 0 :(得分:1)
是的,这:anBlZ2F0dGFjaG1lbnQuSlBFRw==
是base64编码的jpegattachment.JPEG
。所以只需用base64解码它。
回答如何,在这里: Decode Base64 data in Java
答案 1 :(得分:1)
这是MIME编码的。即使Base64最受欢迎,它也可能使用其他编码,如Quoted-printable,binary等。所以你应该使用现有的库来解码它。任何邮件程序都会内置解码器。
您可以使用Java Mail中的decodeWord()
如果您想单独保留纯文本,请尝试deocdeText()
。