天天看點

VC實作 UTF8轉換成GB2312

CString ConvertUTF8toGB2312(const char *pData, size_t size) 
{ 
    size_t n = MultiByteToWideChar(CP_UTF8, 0, pData, (int)size, NULL, 0); 
    WCHAR   *   pChar   =   new   WCHAR[n+1]; 

    n = MultiByteToWideChar(CP_UTF8, 0, pData, (int)size, pChar, n); 
    pChar[n]=0; 

    n = WideCharToMultiByte(936, 0, pChar, -1, 0, 0, 0, 0); 
    char *p = new char[n+1]; 

    n = WideCharToMultiByte(936, 0, pChar, -1, p, (int)n, 0, 0); 
    CString result(p); 

    delete []pChar; 
    delete []p; 
    return result; 
}