(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 UNICODEint 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;
#elsesUtf8= sUnicode;
#endifreturn true;
}
(2)UTF8 转UNICODE转
bool UTF8ToUnicode(const CHAR * sUtf8, WCHAR *sUnicode)
{
#ifdef UNICODEint 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;
#elsesUnicode= sUtf8;
#endifreturn true;
}