同样的代码,同一个文本文件:我在VC6.0中可以正常运行,在VC2010中读出来的全是乱码
CString str;
CFile file;
if (!file.Open("hello.txt",CFile::modeRead,NULL))
{
MessageBox("filed to open file");
}
CArchive ar(&file,CArchive::load);
while(ar.ReadString(str))
{
MessageBox(str);
}但是我发在VS2010中,如是用CArchive::WriteString写的文件,用ReadString可以正常读出,但是文件用记事本打开是乱码?为什么 会这样,字符集???我该怎么处理,我想在VS2010中用CArchive读文本文件
VCVisual Studio 2010

解决方案 »

  1.   

    VS2010默认的UNICODE,并不是多字节,而在VC6下默认的就是多字节,所以你看看是不是工程的字符集的问题
      

  2.   

    恩,我也发现了。VC2010使用的是UNICODE字符!不使用UNICODE就没问题了,我原以为WINOWS使用的也是UNICODE字符集啊,竟然是多字节字符!谢谢了,不过在UNICODE不使用CArchive,而是一个字节一个一个字节地去读每句话也可以