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

Posted

技术标签:

【中文标题】在 Rust 中解码带引号的可打印电子邮件字符串(如 =?UTF-8?Q??=D1=81_=D0)【英文标题】:Decode quoted-printable email strings in Rust (Like =?UTF-8?Q??=D1=81_=D0) 【发布时间】:2019-10-30 08:31:57 【问题描述】:

有没有什么好的 crate 可以解码邮件主题、发件人等中引用的可打印字符串?

我刚刚发现了一个名为 quoted_printable 的迷你箱子。但这并没有太大帮助。例如来自像

这样的字符串

=?utf-8?Q?=D0=A1=D0=B1=D1=80=D0=BE=D1=81_=D0=BF=D0=B0?= =?utf-8?Q?= D1=80=D0=BE=D0=BB=D1=8F_=D0=BD=D0=B0_=D1=81=D0=B0=D0=B9=D1=82?= =?utf-8?Q?= D0=B5?=

我得到了

"=?utf-8?Q?Сброс_па?= =?utf-8?Q?роля_на_сайт?= =?utf-8?Q?е?="

没有=?utf-8?Q?之类的,有没有什么箱子可以给我很好的字符串?

【问题讨论】:

您是否尝试在“quoted_printable”github 存储库中填写错误报告?您输入的预期结果是什么? @SirDarius 它必须看起来像“Сброс пароля на сайт”,这不是库的问题,它是另一种编码 - 请参阅下面 Lanely 的答案 【参考方案1】:

这是 rfc2047 编码的电子邮件标头。我看到 2 个板条箱(理论上)应该能够解码它:email 和 rustyknife。也许还有别的东西,在 crates.io 上寻找“email”和“mime”

【讨论】:

好的,之后会尝试写 - 我也看到了 rfc 和这个板条箱)

以上是关于在 Rust 中解码带引号的可打印电子邮件字符串(如 =?UTF-8?Q??=D1=81_=D0)的主要内容,如果未能解决你的问题,请参考以下文章

Google Schema 是不是支持带引号的可打印编码?

打印带字典/列表的字符串时如何防止打印括号和引号?

将 MIMEText 编码为引用的可打印文件

print()函数与转义字符

csharp CS:解码引用具有特定编码的可打印文本

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