一般从服务器上获取到的网页数据是UTF-8格式,要在对话框上显示正确无乱码,必须转成ASCII编码。这种方法比较简单方便:
void ConvertUTF8ToANSI(const char* strUTF8, CString &strANSI)
{
int nLen = ::MultiByteToWideChar(CP_UTF8,MB_ERR_INVALID_CHARS,(LPCTSTR)strUTF8,-1,NULL,0);
//返回需要的unicode长度
WCHAR * wszANSI = new WCHAR[nLen+1];
memset(wszANSI, 0, nLen * 2 + 2);
nLen = MultiByteToWideChar(CP_UTF8, 0, (LPCTSTR)strUTF8, -1, wszANSI, nLen);//把utf8转成unicode
nLen = WideCharToMultiByte(CP_ACP, 0, wszANSI, -1, NULL, 0, NULL, NULL);//得到要的ansi长度
char *szANSI=new char[nLen + 1];
memset(szANSI, 0, nLen + 1);
WideCharToMultiByte (CP_ACP, 0, wszANSI, -1, szANSI, nLen, NULL,NULL);//把unicode转成ansi
strANSI = szANSI;
delete[] wszANSI;
delete[] szANSI;
}
————————————————
版权声明:本文为优快云博主「回首一片风雨飘摇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/xin_hua_3/article/details/18142699