解析邮件标题中的主题时出现问题。 例如,主题的形式如下。
subject: =?iso-2022-KR?B?DjlMOC4PIA....gyDzogT?=
我的猜测是base64解码应该包含转义字符 - SO,SI,ESC $)C - 。但是,不包括解码。 我怎样才能获得正常的字符串?
我希望结果如下。
Subject: like this, 안녕하세요.
请给我一个如何在代码级别回复的提示。 in C
对不起。我有 SO,SI ,但我错过了。但是没有 ESC $)C ,问题立即解决并与其他人共享。
如果没有 ESC $)C , libiconv 是个问题,但是 gconv(在glibc中) 不是问题。我使用的是 libiconv 。更改为 gconv 已解决问题。
感谢。
答案 0 :(得分:1)
所以在=?iso-2022-KR?B?DjlMOC4PIA....gyDzogT?=
中,被问号夹住的B
意味着base64编码。 iso-2022-KR
是字符集。 DjlMOC4PIA....gyDzogT
是base64编码的标题。
你首先对base64进行解码。它很容易找到a solution for this in C。
这将为您提供一个二进制字节数组,这是在ISO-2022-KR字符集中编码的标题。据推测,您希望将其转换为UTF-8或您的计算机可以处理的其他字符集。这部分最好的选择是使用字符集转换实用程序。如果您使用的是Linux或macOS,则可以使用iconv
库。请参阅iconv_open,iconv和iconv_close。