如题
比如我有char * str="北大方正"我如何得到"北大方正"的unicode 代码

解决方案 »

  1.   

    七、ANSI与Unicode
    Unicode称为宽字符型字串,COM里使用的都是Unicode字符串。将ANSI转换到Unicode
    (1)通过L这个宏来实现,例如: CLSIDFromProgID( L"MAPI.Folder",&clsid);
    (2)通过MultiByteToWideChar函数实现转换,例如:
    char *szProgID = "MAPI.Folder";
    WCHAR szWideProgID[128];
    CLSID clsid;
    long lLen = MultiByteToWideChar(CP_ACP,0,szProgID,strlen(szProgID),szWideProgID,sizeof(szWideProgID));
    szWideProgID[lLen] = '\0'; 
    (3)通过A2W宏来实现,例如: 
    USES_CONVERSION; 
    CLSIDFromProgID( A2W(szProgID),&clsid); 
    将Unicode转换到ANSI
    (1)使用WideCharToMultiByte,例如:
    // 假设已经有了一个Unicode 串 wszSomeString... 
    char szANSIString [MAX_PATH]; 
    WideCharToMultiByte ( CP_ACP, WC_COMPOSITECHECK, wszSomeString, -1, szANSIString, sizeof(szANSIString), NULL, NULL ); 
    (2)使用W2A宏来实现,例如:
    USES_CONVERSION;
    pTemp=W2A(wszSomeString); 
      

  2.   

    MultiByteToWideChar API. This function maps a character string to a 
    wide-character (Unicode) string.
    For detailed information about 
    MultiByteToWideChar, please see:
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/intl/unicod
    e_17si.asp
    Q138813 HOWTO: Convert from ANSI to Unicode & Unicode to ANSI for OLE
    http://support.microsoft.com/default.aspx?scid=kb;EN-US;q138813
     
      

  3.   


       USES_CONVERSION;
       ...
       LPWSTR x = A2W(lpsz
      

  4.   

    这是字符编码的问题:我搞过一段UNICODE编码的程序。对于楼上的方法:API函数MultiByteToWideChar英文是可以的,但对于中文由于没有相应的编码支持是不行了的。有一个办法是可行的。UNICODE编码最前是与ASCII字符相对应的,从这点来说,字母可以简单地自解析,将其成UNICODE编码,其实就是前位补零,后位填充码值。对于汉字你要找一个UNICODE编码--GB2312(或大字符集)的对照表。再处理一下,进行编码映射才可以。比如,你说的 "北大方正"(GB2312)==>"北大方正"(unicode),对于“北”字的双字节GB编码经过计算得到某一索引值,再到
      

  5.   

    你自己UNICODE映射表中查找,得到“北”的UNICODE编码。 如果是双向映射则需要两个映射表。
      

  6.   

    tigerfox老兄,你在那里?能告诉我联系方式么?