HELP 救命呀!谁哪有UINCODE的字符串转换函数的详细说明!

解决方案 »

  1.   

    既然用MFC了,就用CString和CComBSTR就完全可以搞定了。
    WideCharToMultiBytes这些方法都被上面的类封装了。
      

  2.   

    好像是WideCharToMultiBytes()和MultiBytesToWideChar()
      

  3.   


        WCHAR uData[] = L"I服了you!";    char * buffer;    int nLength = 0;    // 第一次调用,获取需要的字节数
        nLength = WideCharToMultiByte(CP_ACP,NULL,uData,-1,NULL,0,NULL,NULL);    // 申请 char 缓冲区
        buffer = (char*)malloc(nLength);    // 第二次调用,真正转换
        WideCharToMultiByte(CP_ACP,NULL,uData,-1,buffer,nLength,NULL,NULL);    MessageBox(buffer);    // 释放缓冲区
        free(buffer);
    说明:  为什么用【L"I服了you!"】做测试,是有道理的。  非UNICODE环境中,汉字本身就占用2个字节,这与在UNICODE环境中是一样的;  而英文字母在两种环境中占用的字节数是不一样的。  注意函数中【-1】的用法,详细信息需要查看【MSDN】中这个函数的用法。
      

  4.   

    方法很多
    1.使用APIWideCharToMultiBytes()和MultiBytesToWideChar() -- 使用方法看MSDN
    2.使用宏
    USES_CONVERSION;
    W2A ,A2W ....等等
    3.使用封装类
    (ATL)_bstr_t CComBSTR (MFC)CString 等等