CString UTF8转Unicode
发布网友
发布时间:2022-05-15 17:19
我来回答
共1个回答
热心网友
时间:2024-02-25 15:57
//////////////////////////////////////////////////////////////////////////
/*
*函数名称:ConvertToUnicode(CString& strUtf8)
*函数介绍:将指定字符串由UTF-8转换为GBK
*输入参数:待转换的UTF-8字符串
*输出参数:无
*返回值 :无
*/
void CMFCApplication2Dlg::ConvertToUnicode(CString& strUtf8)
{
int len = MultiByteToWideChar(CP_UTF8, 0, (LPCSTR)(LPCTSTR)strUtf8, -1, NULL, 0);
unsigned short * wszGBK = new unsigned short[len];
memset(wszGBK, 0, len * 2);
MultiByteToWideChar(CP_UTF8, 0, (LPCSTR)(LPCTSTR)strUtf8, -1, (LPWSTR)wszGBK, len);
len = WideCharToMultiByte(CP_ACP, 0, (LPCWSTR)wszGBK, -1, NULL, 0, NULL, NULL);
char *szGBK = new char[len];
memset(szGBK, 0, len);
WideCharToMultiByte(CP_ACP, 0, (LPCWSTR)wszGBK, -1, szGBK, len, NULL, NULL);
strUtf8 = szGBK;
delete[] szGBK;
delete[] wszGBK;
}
上面的函数,你试试看,应该是可以的。