3,055
社区成员
发帖
与我相关
我的任务
分享
int CUtilityEx::ConvertUtf8ToGBK(char* pChangeStr,int nLength)
{
//int nLen = MultiByteToWideChar( CP_UTF8, 0, pChangeStr, -1, NULL, NULL );//得到UTF8编码的字符串长度
int nLen = nLength*2;
LPWSTR lpwsz = new WCHAR[nLen];
if( lpwsz == NULL)
{
return 0;
}
MultiByteToWideChar( CP_UTF8, 0, pChangeStr, -1, lpwsz, nLen );//转换的结果是UCS2格式
// int nLen1 = WideCharToMultiByte( CP_ACP, 0, lpwsz, nLen, NULL, NULL, NULL, NULL );
// LPSTR lpsz = new CHAR[nLen1];
//WideCharToMultiByte( CP_ACP, 0, lpwsz, nLen, lpsz, nLen1, NULL, NULL );//转换完毕
int nLen1 = WideCharToMultiByte( CP_ACP, 0, lpwsz, -1, pChangeStr, nLen, NULL, NULL );//转换完毕
delete [] lpwsz;
//delete [] lpsz;
*(pChangeStr + nLen1) = '\0';
return nLen1;
}
用这个函数转换看看。