file.Open("task.ini", CFile::modeCreate|CFile::modeNoTruncate|CFile::modeReadWrite);
/*修改str*/
file.Write(str,str.GetLength());    
file.Close();我保存后又变回了ANSI编码格式的了。

解决方案 »

  1.   

    将程序修改成unicode模式是最彻底的方法,在project setting -> c/c++ -> preprocessor definitions中定义UNICODE,_UNICODE,去掉MBCS的定义;将project setting -> link -> entrypoint symbol设置为wWinMainCRTStartup另一种方式是用MultiByteToWideChar将字符串处理成unicode格式,再将转换后的内容写到文件中,文件头好像要增加0xFFFE
      

  2.   

    对unicode的字符,读和写的时候都要加L"",或者_T("") 这2个意思一样.
    对于字符串的变量,可以用wstring,wchar,CString,都可以.