我用了这个函数进行解码:// UCS2解码
// 输入: pSrc - 源编码串指针
//       nSrcLength -  源编码串长度
// 输出: pDst -  目标字符串指针
// 返回: 目标字符串长度
int DecodeUcs2(const unsigned char* pSrc, char* pDst, int nSrcLength)
{
int nDstLength; // UNICODE宽字符数目
WCHAR wchar[128]; // UNICODE串缓冲区 // 高低字节对调,拼成UNICODE
for(int i=0; i<nSrcLength/2; i++)
{
wchar[i] = *pSrc++ << 8; // 先高位字节
wchar[i] |= *pSrc++; // 后低位字节
} // UNICODE串-->字符串
nDstLength = WideCharToMultiByte(CP_ACP, 0, wchar, nSrcLength/2, pDst, 160, NULL, NULL); // 输出字符串加个结束符
pDst[nDstLength] = '\0'; // 返回目标字符串长度
return nDstLength;
}但是如果源字符串中是纯中文的时候能够正确解码,如果里面含有中文,英文混合的时候就不行了,该怎么处理呢?各位大虾指教!