Есть ли библиотека для q-кодирования? Мне нужно декодировать некоторые Q-закодированный текст, например:Как декодировать q-кодирование в C?
**Subject: =?iso-8859-1?Q?=A1Hola,_se=F1or!?=**
Есть ли библиотека для q-кодирования? Мне нужно декодировать некоторые Q-закодированный текст, например:Как декодировать q-кодирование в C?
**Subject: =?iso-8859-1?Q?=A1Hola,_se=F1or!?=**
GNU Mailutils libmailutils - один из примеров такой библиотеки.
«Q» -кодирование задано RFC 2047, поэтому использование его в качестве поискового запроса дает вам другие релевантные результаты.
Не уверен, что о библиотеках Q-кодирования, не мог найти.
Обратите внимание, что ваш последний пример не похож на Q-кодировку, обратите внимание, что символ после кодировки («UTF-8») не является «Q», а «B». Это означает, что это кодировка base64, для которой существует множество библиотек, один пример - glib.
См. MIME в Википедии, чтобы узнать, как определить, какая кодировка используется.
Тема электронной почты закодирована в соответствии с 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月计划表
жаль, что вы правы я удалил. это была ошибка. – iyasar