我在VC2010中使用CArchive::ReadString一句一句地读文本为什么一次读完全部而且全是乱码

时间:2021-07-15 15:50:37
同样的代码,同一个文本文件:我在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读文本文件

2 个解决方案

#1


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

#2


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

#1


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

#2


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