解决方案 »

  1.   

    把你那个文件另存为unicode试试
      

  2.   

    http://blog.csdn.net/harry_lyc/article/details/6339590
      

  3.   

    检查 开头 2个 字节 
    UNICODE 应该是  FF  FE (FF  FE UTF-16 aka UCS-2, little endian )
    然后 逐个字节读入 到 buffer 遇到 0D (回车)时 就是 一行 (后面 3个 是 00 0A 00)
    如果 不要 回车换行 这 4个 都 应该 =0;
    然后 把 这行  变为 多 字节
    WideCharToMultiByte
    直到文件结束
      

  4.   

     试试:
    // 先个修改区域设定
    char* old_locale = _strdup( setlocale(LC_CTYPE,NULL) );
    setlocale( LC_CTYPE, "chs" );//设定//此处加入你读写文件代码setlocale( LC_CTYPE, old_locale );
    free( old_locale );//还原区域设定
      

  5.   

    因为1.txt不是UNICODE编码的,所以不要用UNICODE的函数。
    TRY
    {
    CFile file(_T("E:\\1.txt"),CFile::modeRead); 
    CHAR *pBuf; 
    DWORD dwFlielen;
    dwFlielen=file.GetLength();
    pBuf=new CHAR[dwFlielen+sizeof(CHAR)];
    memset(pBuf, 0, dwFlielen+sizeof(CHAR));
    file.Read(pBuf,dwFlielen);
    file.Close();
    MessageBoxA(NULL, pBuf, 0, 0);
    }CATCH(CFileException, e)
    {
    e->ReportError();
    }END_CATCH