解码电子邮件的有趣 ISO 编码

发布于 2024-12-02 18:58:59 字数 284 浏览 0 评论 0原文

我有一个电子邮件正文(char[]缓冲区,通过POP3检索),它显然使用了ISO代码页的一些标记,例如像这样的主题

Daß ißt ään schlümmer Test

被编码为

=?iso-8859-1?Q?Da=DF_i=DFt_=E4=E4n_schl=FCmmer_TDest

是否有任何预先制作的东西我可以用来将其变成(可读)CStringW?

(环境:Win32、C++、VC2008。)

I have an e-mail body (char[] buffer, retrieved via POP3), it apparently uses some markup for ISO code pages, e.g. a subject like

Daß ißt ään schlümmer Test

is encoded as

=?iso-8859-1?Q?Da=DF_i=DFt_=E4=E4n_schl=FCmmer_TDest

Is there anything pre-made I can use to turn that into a (readable) CStringW?

(Environment: Win32, C++, VC2008.)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

穿越时光隧道 2024-12-09 18:58:59

这种格式称为 encoded-word,由 RFC 2047。格式为 =????=,其中数据编码为 base-64 (B) 或类似的内容Quoted-printable (Q) 但不完全是(因为 _ 表示空格)。

一些 示例 C++ 解码器将为您提供一个字节字符串。然后,您必须使用该字符集进行解码才能获取 Unicode 字符串。

This format is called an encoded-word and is defined by RFC 2047. The form is =?<charset>?<Q or B>?<encoded data>?=, where the data is encoded as either base-64 (B) or something that looks like quoted-printable (Q) but isn't quite (because _ means a space).

Some example C++ decoders will get you to a byte string. You'd then have to decode using the charset to get a Unicode string.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文