如何在C中解码q编码?

如何在C中解码q编码?,c,encoding,decoding,C,Encoding,Decoding,有q编码库吗?我需要解码一些q编码的文本,例如: **Subject: =?iso-8859-1?Q?=A1Hola,_se=F1or!?=** 不确定Q编码库,找不到任何库 但请注意,后一个示例看起来不像Q编码,请注意字符集(“UTF-8”)后面的字符不是“Q”,而是“B”。这意味着它是base64编码,其中有很多库,就是一个例子 有关如何检测正在使用的编码的详细信息,请参见Wikipedia。就是此类库的一个示例 “Q”-编码是由指定的,因此使用它作为搜索词会给出其他相关结果。电子邮件主题

有q编码库吗?我需要解码一些q编码的文本,例如:

**Subject: =?iso-8859-1?Q?=A1Hola,_se=F1or!?=**

不确定Q编码库,找不到任何库

但请注意,后一个示例看起来不像Q编码,请注意字符集(“UTF-8”)后面的字符不是“Q”,而是“B”。这意味着它是base64编码,其中有很多库,就是一个例子

有关如何检测正在使用的编码的详细信息,请参见Wikipedia。

就是此类库的一个示例


“Q”-编码是由指定的,因此使用它作为搜索词会给出其他相关结果。

电子邮件主题是根据RFC 2047编码的。我们可以使用GNU mailutils提供的函数
mu\u rfc247\u decode()
对其进行解码。 例如:

#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);
}
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月计划表