Open App.Path & "\wz.txt" For Binary As #1
        Do While Not EOF(1)   ' 检查文件尾。
            Get #1, , tmp1
            Get #1, , tmp2
    
            rddata = rddata + ChrW(tmp2 * CLng(256) + tmp1)//关键就是这段!
        Loop
    Close #1一直实现不了,请各位高手帮忙!看了好多资料还是实现不了。
MultiByteToWideChar(CP_UTF8,0,ReadData,ReadData.GetLength(),pChar,n);也不行
可能是我不知道怎么用!

解决方案 »

  1.   

    顺便说一下wz.txt文件是按照ucs-2进行存储的,我就是不知道怎么把保存的信息读出来,请高手说明!
      

  2.   

    ChrW(tmp2 * CLng(256) + tmp1)//tmp1 ,tmp2应该是BYTE类型吧. 等于 (WORD)((tmp2 << 8 ) | tmp1) 就是高位在后在读取方法.
    这个文件格式是 UNICODE BIG END 格式
    '
    看这代码显然该件没有UNICODE的文件头
    你可以用wchar_t 读出再将两个BYTE交换一下就对了rddata 是不是定义的string变量大概会是这样void swapbyte(WORD& wch )
    {
        BYTE hi = HIBYTE(wch);
        BYTE lo = LOBYTE(wch);
        wch = MAKEWORD( hi, lo );
    }void ReadFile()
    {
        wchar_t  wch;
        CString  str = "";
        while( ReadFile( h, &wch, 2, readBytes ) ) // 读一个WCHAR
        {
            swapbyte( wch ); // 换成高位在前的格式
            str += wch;//追加到字符串中
        }
        str 的内容就是文件内容
    }
    UCS-2的格式你用CP_UTF8来转换肯定是不对的.