UTF8与GB2312的互转

来源:互联网 发布:apache 负载均衡 策略 编辑:程序博客网 时间:2024/06/05 12:45

从网上找到的两个函数,实现UTF8和GB2312的互转,记录一下。


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;} 


GB2312转UTF8:

CString GBToUTF8(const char* str){CString result;WCHAR *strSrc;TCHAR *szRes;//获得临时变量的大小int i = MultiByteToWideChar(CP_ACP, 0, str, -1, NULL, 0);strSrc = new WCHAR[i+1];MultiByteToWideChar(CP_ACP, 0, str, -1, strSrc, i);//获得临时变量的大小i = WideCharToMultiByte(CP_UTF8, 0, strSrc, -1, NULL, 0, NULL, NULL);szRes = new TCHAR[i+1];int j=WideCharToMultiByte(CP_UTF8, 0, strSrc, -1, szRes, i, NULL, NULL);result = szRes;delete []strSrc;delete []szRes;return result;}



0 0
原创粉丝点击