WCHAR* CHAR* 转换

//包含头文件 
#include   <AFXCONV.H> 

CString   strUnicode(_T( "unicode   string ")); 
USES_CONVERSION; 
char*   pszChar   =   W2A(strUnicode));


MultiByteToWideChar 
WideCharToMultiByte 
 

   void  ConvertUtf8ToGBK(CString &  strUtf8) 
WCHAR* CHAR* 转换    
{
WCHAR* CHAR* 转换        
int len=MultiByteToWideChar(CP_UTF8, 0, (LPCTSTR)strUtf8, -1, NULL,0);
WCHAR* CHAR* 转换        unsigned 
short * wszGBK = new unsigned short[len+1];
WCHAR* CHAR* 转换        memset(wszGBK, 
0, len * 2 + 2);
WCHAR* CHAR* 转换        MultiByteToWideChar(CP_UTF8, 
0, (LPCTSTR)strUtf8, -1, wszGBK, len);
WCHAR* CHAR* 转换
WCHAR* CHAR* 转换        len 
= WideCharToMultiByte(CP_ACP, 0, wszGBK, -1, NULL, 0, NULL, NULL);
WCHAR* CHAR* 转换        
char *szGBK=new char[len + 1];
WCHAR* CHAR* 转换        memset(szGBK, 
0, len + 1);
WCHAR* CHAR* 转换        WideCharToMultiByte (CP_ACP, 
0, wszGBK, -1, szGBK, len, NULL,NULL);
WCHAR* CHAR* 转换
WCHAR* CHAR* 转换        strUtf8 
= szGBK;
WCHAR* CHAR* 转换        delete[] szGBK;
WCHAR* CHAR* 转换        delete[] wszGBK;
WCHAR* CHAR* 转换    }

WCHAR* CHAR* 转换
WCHAR* CHAR* 转换
WCHAR* CHAR* 转换    
void  ConvertGBKToUtf8(CString &  strGBK)
WCHAR* CHAR* 转换    
{
WCHAR* CHAR* 转换        
int len=MultiByteToWideChar(CP_ACP, 0, (LPCTSTR)strGBK, -1, NULL,0);
WCHAR* CHAR* 转换        unsigned 
short * wszUtf8 = new unsigned short[len+1];
WCHAR* CHAR* 转换        memset(wszUtf8, 
0, len * 2 + 2);
WCHAR* CHAR* 转换        MultiByteToWideChar(CP_ACP, 
0, (LPCTSTR)strGBK, -1, wszUtf8, len);
WCHAR* CHAR* 转换
WCHAR* CHAR* 转换        len 
= WideCharToMultiByte(CP_UTF8, 0, wszUtf8, -1, NULL, 0, NULL, NULL);
WCHAR* CHAR* 转换        
char *szUtf8=new char[len + 1];
WCHAR* CHAR* 转换        memset(szUtf8, 
0, len + 1);
WCHAR* CHAR* 转换        WideCharToMultiByte (CP_UTF8, 
0, wszUtf8, -1, szUtf8, len, NULL,NULL);
WCHAR* CHAR* 转换
WCHAR* CHAR* 转换        strGBK 
= szUtf8;
WCHAR* CHAR* 转换        delete[] szUtf8;
WCHAR* CHAR* 转换        delete[] wszUtf8;
WCHAR* CHAR* 转换    }

你可能感兴趣的:(char)