void UTF8ToUnicode(char chStr[], wchar szResult[], word wMaxLen)
{
ASSERT(strlen(chStr) < wMaxLen);
if (strlen(chStr) >= wMaxLen) return;
INT nLen = MultiByteToWideChar(CP_UTF8, 0, chStr, -1, NULL, 0);
ASSERT(nLen < wMaxLen);
if (nLen >= wMaxLen) return;
MultiByteToWideChar(CP_UTF8, 0, chStr, -1, szResult, nLen);
}
int UnicodeToUTF8(whar szStr[], char szUtf8[],word wMaxLen)
{
ASSERT(lstrlen(szStr) < wMaxLen);
if (lstrlen(szStr) >= wMaxLen) return 0;
int nLen = WideCharToMultiByte(CP_UTF8, 0, szStr, lstrlen(szStr), NULL, 0, NULL, NULL);
ASSERT(nLen < wMaxLen);
if (nLen >= wMaxLen) return 0;
WideCharToMultiByte(CP_UTF8, 0, szStr, lstrlen(szStr), szUtf8, nLen, NULL, NULL);
return nLen;
}