WideCharToMultiByte 越南文时存在问号
void UTF8Convert(char sourceStr[], char targetStr[])
{
int unicodeLen = MultiByteToWideChar(CP_UTF8, 0, sourceStr, -1, NULL, 0);
wchar_t * pUnicode;
pUnicode = new wchar_t[unicodeLen + 1];
memset(pUnicode, 0, (unicodeLen + 1) * sizeof(wchar_t));
int nRet = MultiByteToWideChar(CP_UTF8, 0, sourceStr, -1, pUnicode, unicodeLen);
if (nRet <= 0)
{
MessageBox("转换失败", "");
}
else
{
MessageBox("转换成功", "");
}
char * pTargetData = NULL;
int targetLen = WideCharToMultiByte(CP_ACP, 0, pUnicode, -1, pTargetData, 0, NULL, FALSE);
pTargetData = new char[targetLen + 1];
memset(pTargetData, 0, targetLen + 1);
nRet = WideCharToMultiByte(CP_ACP, 0, pUnicode, -1, pTargetData, targetLen, NULL, FALSE);
if (nRet <= 0)
{
MessageBox("转换失败\n", "");
}
else
{
MessageBox("转换成功\n", "");
}
}
试试 WideCharToMultiByte(
用过以下参数:
#define CP_OEMCP
#define CP_MACCP
#define CP_THREAD_ACP
#define CP_SYMBOL
1258—越文代码页
请教各位大神,谢谢