0

解析邮件标题中的主题时出现问题。例如,主题的形式如下。

subject: =?iso-2022-KR?B?DjlMOC4PIA....gyDzogT?=

我的猜测是 base64 解码应该包括转义字符 - SO、SI、ESC$)C -。但是,不包括解码。我怎样才能得到一个正常的字符串?

我希望结果如下。

Subject: like this, 안녕하세요.

请给我一个提示如何在代码级别做出响应。在 C 中

更新

对不起。我有一个SO, SI,但我错过了。但是没有ESC$)C,问题立即解决并分享给其他人。

在没有ESC$)C的情况下,libiconv是一个问题,但gconv(in glibc)不是问题。我使用的是libiconv改成 gconv解决了这个问题。

谢谢。

4

1 回答 1

1

所以=?iso-2022-KR?B?DjlMOC4PIA....gyDzogT?=中间B夹着问号表示base64编码。是iso-2022-KR字符集。这DjlMOC4PIA....gyDzogT是 base64 编码的标题。

您首先对标题进行 base64 解码。在 C 中很容易找到解决方案

这将为您留下一个二进制字节数组,它是以ISO-2022-KR字符集编码的标题。大概您想将其转换为 UTF-8 或您的计算机可以处理的其他字符集。这部分的最佳选择是使用字符集转换实用程序。如果您使用的是 Linux 或 macOS,则可以使用该iconv库。请参阅iconv_openiconv和 iconv_close。

于 2017-05-11T10:08:10.297 回答