在VC工程中已经设置成“Use Multi-Byte Character Set”,请问怎样把中文char转成utf-8串。 
如char *content="abc中国人"; 
我要把这个字符串转成utf-8编码的字符串。 
最后能用纯C来实现。因为程序最终是要能同时在windows和linux下运行的。在VC工程中已经设置成“Use Multi-Byte Character Set”,请问怎样把中文char转成utf-8串。 
如char *content="abc中国人"; 
我要把这个字符串转成utf-8编码的字符串。 
最后能用纯C来实现。因为程序最终是要能同时在windows和linux下运行的。讲故事

解决方案 »

  1.   

    VOID AnsiToUTF8(LPCTSTR lpszAnsi, CString& strUTF8)
    {
    WCHAR *pwszTemp = NULL;
    int nLen = 0; nLen = MultiByteToWideChar(CP_ACP, 0, lpszAnsi, -1, NULL, 0);
    pwszTemp = new WCHAR[nLen+1];
    pwszTemp[nLen] = L'\0';
    MultiByteToWideChar(CP_ACP, 0, lpszAnsi, -1, pwszTemp, nLen);
    nLen = WideCharToMultiByte(CP_UTF8, 0, pwszTemp, -1, NULL, 0, NULL, NULL);
    WideCharToMultiByte(CP_UTF8, 0, pwszTemp, -1,strUTF8.GetBuffer(nLen+1), nLen, NULL, NULL);
    strUTF8.ReleaseBuffer();
    delete pwszTemp;
    }
      

  2.   

    2楼的例子好。不过好像应该delete []pwszTemp;