CString AnsiToUnicode(const char* pszAnsi)
{
if (strlen(pszAnsi) == 0)
return _T("");
CString strUnicode = _T("");
try
{
int len = ::MultiByteToWideChar(CP_ACP, 0, pszAnsi, -1, NULL, 0);
if (len != 0)
{
wchar_t* szTemp = new wchar_t[len];
::MultiByteToWideChar(CP_ACP, 0, pszAnsi, -1, szTemp, len);
strUnicode = szTemp;
delete[] szTemp;
szTemp = NULL;
}
}
catch(...)
{
}
return strUnicode;
}
std::string UnicodeToAnsi(const wchar_t* pwszUnicode)
{
if (wcslen(pwszUnicode) == 0)
return "";
std::string szAnsi = "";
try
{
int len = ::WideCharToMultiByte(CP_ACP, 0, pwszUnicode, -1, NULL, 0, NULL, NULL);
if (len != 0)
{
char* szTemp = new char[len];
::WideCharToMultiByte(CP_ACP, 0, pwszUnicode, -1, szTemp, len, NULL, NULL);
szAnsi = szTemp;
delete[] szTemp;
szTemp = NULL;
}
}
catch(...)
{
}
return szAnsi;
}
CString Utf8ToUnicode(const char* pszUtf8)
{
if (strlen(pszUtf8) == 0)
return _T("");
CString strUnicode = _T("");
try
{
int len = ::MultiByteToWideChar(CP_UTF8, 0, pszUtf8, -1, NULL, 0);
if (len != 0)
{
wchar_t* szTemp = new wchar_t[len];
::MultiByteToWideChar(CP_UTF8, 0, pszUtf8, -1, szTemp, len);
strUnicode = szTemp;
delete[] szTemp;
szTemp = NULL;
}
}
catch(...)
{
}
return strUnicode;
}
std::string UnicodeToUtf8(const wchar_t* pwszUnicode)
{
if (wcslen(pwszUnicode) == 0)
return "";
std::string szUtf8 = "";
try
{
int len = ::WideCharToMultiByte(CP_UTF8, 0, pwszUnicode, -1, NULL, 0, NULL, NULL);
if (len != 0)
{
char* szTemp = new char[len];
::WideCharToMultiByte(CP_UTF8, 0, pwszUnicode, -1, szTemp, len, NULL, NULL);
szUtf8 = szTemp;
delete[] szTemp;
szTemp = NULL;
}
}
catch(...)
{
}
return szUtf8;
}