搞VS2010 里面碰到字符转化头疼得厉害 所有搜了一系列
发现主要是由于Ansi 和 Unicode 两种编码不兼容所以写了这两个函数 仅供参考,欢迎指责
CString UnicodeToAnsi(char recvBuf[100],int length)
{CString strUnicode;
int n;
CString s;
recvBuf[length]=0;//判断字符串结束
WCHAR wch[1000];
n = MultiByteToWideChar( //转换Unicode到Ansi
936,
0,
recvBuf,
-1,
wch, //转换到缓冲区中
100000 //最多个字节
);
strUnicode=wch;
return strUnicode;
}
char* AnsiToUnicode(CString strUnicode)
{
int iSize;
char* pszMultiByte;
iSize = WideCharToMultiByte(CP_ACP, 0, strUnicode.GetBuffer(), -1, NULL, 0, NULL, NULL);
strUnicode.ReleaseBuffer();
pszMultiByte = new char[iSize+1];
WideCharToMultiByte(CP_ACP, 0, strUnicode.GetBuffer(), -1, pszMultiByte, iSize, NULL, NULL);
strUnicode.ReleaseBuffer();
return pszMultiByte;
}