请问高手:读取十六进制文件,该文件用UltraEdit可以打开,里面是格式化的十六进制数据,用txt打开是乱码,请教!!最好有现成代码供参考!谢谢!

解决方案 »

  1.   

    你把记事本设为unicode格式打开应该就可以了
      

  2.   

    BYTE buf[] = {02,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,20,00,\
    00,00,00,0e,66,00,00,10,00,00,00,10,00,00,00,66,7f,97,88,f4,1c,d3,95,8d,ad,\
    27,98,07,15,c9,4a,00,00,00,00,04,80,00,00,10,00,00,00,10,00,00,00,3c,03,8f,\
    2f,dc,93,1f,e4,dc,ac,31,af,5c,27,8d,52,20,00,00,00,a0,ee,dc,06,79,4d,8b,64,\
    f1,87,44,98,20,c4,c7,be,c6,18,e8,6b,62,dc,14,96,ee,9d,2d,03,f1,d7,48,6e,14,\
    00,00,00,f4,f6,53,96,64,d9,46,23,e6,e7,bc,f1,01,0f,92,9a,9d,d4,8d,4a};//BYTE数组转换成16进制字符串
    void ToHexString(BYTE bytes[],CString &str)
    {
    char szHexDigits[] = {'0', '1', '2', '3', '4', '5', '6', '7',
    '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
    char sz[sizeof(bytes) * 2];
    for (int i = 0; i < sizeof(bytes); i++)
    {
    int b = bytes[i];
    sz[i * 2] = szHexDigits[b >> 4];
    sz[i * 2 + 1] = szHexDigits[b & 0xF];
    }
    str.Format("%s",sz);
    }CString str;
    ToHexString(buf,str);