如何把QUOTED-PRINTABLE编码的内容解析成Unicode编码内容?
哪位仁兄有好的方法请不吝赐教啊!感激万分!
[解决办法]
int DecodeQuoted(const char* pSrc, unsigned char* pDst, int nSrcLen)
{
int nDstLen; // 输出的字符计数
int i;
i = 0;
nDstLen = 0;
while (i < nSrcLen)
{
if (strncmp(pSrc, "=\r\n ", 3) == 0) // 软回车,跳过
{
pSrc += 3;
i += 3;
}
else
{
if (*pSrc == '= ') // 是编码字节
{
sscanf(pSrc, "=%02X ", pDst);
pDst++;
pSrc += 3;
i += 3;
}
else // 非编码字节
{
*pDst++ = (unsigned char)*pSrc++;
i++;
}
nDstLen++;
}
}
// 输出加个结束符
*pDst = '\0 ';
return nDstLen;
}
将解码之后的数据用mbstocws成unicode即可
有中文的话需要先调用setlocale(LC_ALL, "chs ");