解码电子邮件的有趣 ISO 编码
我有一个电子邮件正文(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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这种格式称为
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.