现在有个需求是把UNICODE 字符串转成数字编码,再组合成字符串,如
"好a123",假设好对应51 33 A对应 97 00
转成
"51339700110012001300"这个怎么进行?

解决方案 »

  1.   


    我试了一下WideCharToMultiByte,对于"好"这种字符串可以转出来,但是对于"a",它转出来的是"97"不是"9700",难道我要一个字符一个字符地去转?
      

  2.   

    a的utf16是0x0097,你转出来的没错。
      

  3.   


    用WideCharToMultiByte 转"好AA"转出来是"51339797"
    实际我想得到的是"513397009700"
      

  4.   

    WCHAR wsz[]=L"好a123";
    int i;
    CHAR szHexString[MAX_PATH]="";
    CHAR * psrc=(CHAR *)wsz;
    CHAR * pdest=szHexString;
    for(i=0;i<(sizeof(wsz)-sizeof(WCHAR));i++) //将wsz逐字节转成16进制的字符格式
    {
       pdest+=wsprintf(pdest, "%.2x", (BYTE)*(psrc+i));
    }
    *pdest='\0';
      

  5.   

    你转错了,首先要使用MultiByteToWideChar将"好AA"转成utf16串,结果是一个WCHAR的串,然后按BYTE方式访问这个串就是97009700。