Тема письма закодирована в соответствии с RFC 2047. Мы можем декодировать ее, используя функцию mu_rfc2047_decode()
, предоставляемую GNU mailutils.Пример:
#include <stdio.h>
#include <stdlib.h>
#include <mailutils/mailutils.h>
#include <mailutils/mime.h>
...
char cipher[] = "=?GB2312?B?UmWjujEy1MK8xruuse0=?=";
char *plaintext;
int rc = mu_rfc2047_decode("utf-8", cipher, &plaintext);
if (rc) {
fprintf(stderr, "Fail to decode '%s'\n", cipher);
} else {
puts(plaintext);
free(plaintext);
}
Чтобы загрузить GNU mailutils, посетите https://mailutils.org/
Чтобы понять RFC 2047, прочитайте https://www.ietf.org/rfc/rfc2047.txt
Результат теста:
Cipher:
**Subject: =?iso-8859-1?Q?=A1Hola,_se=F1or!?=**
Plaintext:
**Subject: ¡Hola, señor!**
Cipher:
=?Big5?Q?=AE=F8=B6O=BA=A18=A4d=BFW=AEa?=
Plaintext:
消費滿8千獨家
Cipher:
=?GB2312?B?UmWjujEy1MK8xruuse0=?=
Plaintext:
Re:12月计划表