在Java中解码“quoted-printable”字符串

4

我想使用javax.mail.internet.MimeUtility来解码一个"quoted-printable"字符串。我不需要任何与邮件服务器的接口。如何最好地获取该类(及其依赖项)?或者,是否有更好的方法来解析"quoted-printable"字符串?


不确定为什么这个问题没有评论就被评为-2分;它似乎是对另一个“quoted-printable”编码问题的回答的自然延续。链接:https://dev59.com/gFrUa4cB1Zd3GeqPovX_ - Gene Golovchinsky
3个回答

6

1

我发现Apache Commons Codec相当受限。它无法解码quoted-printable格式的邮件。我选择的选项是MimeUtility#decode

示例:

String(MimeUtility.decode(content.byteInputStream(), "quoted-printable").readAllBytes())

太棒了!而且不需要任何额外的依赖。 - Monkey Supersonic

1

我不知道标准的J2SE API中是否有相关内容。然而,快速的谷歌搜索可以找到这个解码器代码。我无法保证它的可靠性,但看起来还算合理。你也可以自己找到其他的解决方案。


事实证明,代码并不完全正确...它似乎无法正确地递增'retlen',因此无法计算大多数测试字符串的正确长度。 - Gene Golovchinsky
@GeneGolovchinsky - 很高兴知道那段代码存在问题。你能修复它或找到其他可行的解决方案吗? - Ted Hopp
是的,在主要的“decode”方法末尾附近由于被注释掉的代码,导致了一个伪造的“else”。它阻止了下一个字符的复制和缓冲区索引的增加。 - Gene Golovchinsky

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接