CStdioFile clsFile;clsFile.Open(strFilePath, CFile::modeRead|CFile::typeText);TCHAR szRead[64] = {0};clsFile.ReadString(szRead,64);文件中含有中文字符。在Unicode下执行,读出的中文是乱码,且用WideCharToMultiByte函数无法转换成中文;
非Unicode下一切正常。请大家指教。

解决方案 »

  1.   

    关于CStdioFile的问题,看我的文章,本来发在CSDN上,没找到先看这个
    http://www.zahui.com/html/1/3914.htm
      

  2.   

    本来做了一个TextFile类,现在找不到了,不好意思你可以自己实现,使用CFile派生,然后每次读2个字符转换成WORD-〉wchar_t就可以了
      

  3.   

    在Unicode下执行,读出的中文是乱码,非Unicode下一切正常。说明你的文件内容不是UNICODE。你可以读进内存中再转换为UNICODE,或者当初保存文件时先转换为UNICODE再保存。举例:
    CStdioFile clsFile;
    clsFile.Open(strFilePath, CFile::modeRead|CFile::typeText);
    char szRead[64] = {0};
    clsFile.ReadString(szRead,64);
    MultiByteToWideChar(...)
      

  4.   

    说的复杂了
    比较简单的是wchar_t  c;
    File.Read(&c, sizeof(wchar_t));
    string = c;
    return string;