在VC6下UNICODE 下转 UTF8 
如何知道转换后的是否是UTF8格式的

解决方案 »

  1.   

    我想知道的是如何知道转换后的是否为UTF8格式,
    怎么看呢?
      

  2.   

    在web程序里,我测试时抓包数据:%E5%90%84%E4%B8%AA223
    可是我用VC客户端传过去,抓的包却是:......223
    这个到底怎么回事?
    我的转换代码如下:
    int CCommon::UniToUTF8(CString strUnicode,char *szUtf8)
    {
    int ilen = WideCharToMultiByte(CP_UTF8, 0, (LPCTSTR)strUnicode, -1, NULL, 0, NULL, NULL); 
    char *szUtf8Temp=new char[ilen + 1];
    memset(szUtf8Temp, 0, ilen +1); 
    WideCharToMultiByte (CP_UTF8, 0, (LPCTSTR)strUnicode, -1, szUtf8Temp, ilen, NULL,NULL); 
    //sprintf(szUtf8, "%s", szUtf8Temp);// 
    strcat(szUtf8,szUtf8Temp);
    size_t len = strlen(szUtf8Temp);
    delete[] szUtf8Temp; 
    return len;
    }
      

  3.   

    写进TXT后,在点另存为,这时候就能看到当前文件编码类型了
      

  4.   

    那边不对
    我按6楼的方法,另存为是,下面编码显示是UTF-8的,
    可是为什么:
    在web程序里,我测试时抓包数据:%E5%90%84%E4%B8%AA223 
    可是我用VC客户端传过去,抓的包却是:......223
      

  5.   

    再转成utf16比较一下............
      

  6.   

    是再转成UNICODE吗,转出来跟之前的值是一样的。
      

  7.   

    char *pUtf8 = new char[len];
    memset(pUtf8,0,len);
    len = UniToUTF8(strSend,pUtf8);
    BOOL bSuc=pFile -> SendRequest(NULL,0,pUtf8,len); 我是这样发送数据的