(1)ASCII转UNICODE
void ConvertAnsiTounicode(const CHAR* strIn, WCHAR * wstrOut)
{
int nLength = 0;
nLength = MultiByteToWideChar(CP_ACP, 0, strIn, -1, NULL, 0);
MultiByteToWideChar(CP_ACP, 0, strIn, -1, wstrOut, nLength);
}
(2)UNICODE转ASCII
void ConvertUnicodeToAnsi(const WCHAR * strIn, CHAR* strOut)
{
int nLength = 0;
nLength = WideCharToMultiByte(CP_ACP, 0, strIn, -1, NULL, 0, NULL, NULL);
WideCharToMultiByte(CP_ACP, 0, strIn, -1, strOut, nLength, NULL, NULL);
}
(2)UNICODE转UTF8
bool UnicodeToUTF8(const WCHAR * sUnicode, CHAR *sUtf8)
{
#ifdef UNICODE
int nLen = WideCharToMultiByte(CP_UTF8, 0, sUnicode, -1, NULL, 0, NULL, NULL);
char *utf8 = new char[nLen+1];
if(nLen != WideCharToMultiByte(CP_UTF8, 0, sUnicode, -1, utf8, nLen, NULL, NULL))
return false;
sUtf8= utf8;
delete[] utf8;
#else
sUtf8= sUnicode;
#endif
return true;
}
(2)UTF8 转UNICODE转
bool UTF8ToUnicode(const CHAR * sUtf8, WCHAR *sUnicode)
{
#ifdef UNICODE
int nLen = MultiByteToWideChar(CP_UTF8, 0, sUtf8, -1, NULL, 0);
WCHAR *unicode = new WCHAR[nLen+1];
if(nLen != MultiByteToWideChar(CP_UTF8, 0, sUtf8, -1, unicode, nLen))
return false;
sUnicode= unicode;
delete[] unicode;
#else
sUnicode= sUtf8;
#endif
return true;
}