在 Java 中解码“引用可打印”字符串

Posted

技术标签:

【中文标题】在 Java 中解码“引用可打印”字符串【英文标题】:Decoding a "quoted-printable" string in Java 【发布时间】:2012-10-19 10:48:53 【问题描述】:

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

【问题讨论】:

不知道为什么这值得 -2 没有评论;这似乎是对另一个 question on "quoted-printable" encodings 的回答的自然后续。 【参考方案1】:

我不知道标准 J2SE API 中的任何内容。然而,一个快速的谷歌搜索出现了this decoder code。我不能保证,但它看起来很合理。你可能自己也能找到其他人。

【讨论】:

事实证明,代码并不完全正确......它似乎没有正确增加retlen,因此无法为大多数测试字符串计算正确的长度。 @GeneGolovchinsky - 很高兴知道该代码有问题。您是否能够修复它或找到其他可行的方法? 是的,有一个虚假的“else”,原因是主“decode”方法末尾附近的代码被注释掉了。它可以防止复制下一个字符并防止缓冲区索引增加。【参考方案2】:

Apache Commons Codec 库还支持quoted printable,并且在更宽松的 apache 许可下可用。

【讨论】:

以上是关于在 Java 中解码“引用可打印”字符串的主要内容,如果未能解决你的问题,请参考以下文章

在 Rust 中解码带引号的可打印电子邮件字符串(如 =?UTF-8?Q??=D1=81_=D0)

这是合法的引用可打印编码吗?

在 Java 中解码 URI 查询字符串

Imap消息编码问题

如何在 Java 中解码 DER 编码的字符串?

尝试在已用 Java 编码的 JS 中解码 Base64 时出现“要解码的字符串未正确编码”错误