CFile f("word.txt",CFile::modeWrite);
CString str = "什么";
CArchive ar(&f,CArchive::store);
ar << str;怎么解决?

解决方案 »

  1.   

    写入txt的文本编码类型和打开txt的时候的编码类型不一致。你程序没有特别转换过的话就是UNICODE,txt打开默认是UTF-8
      

  2.   

    看你声明的 CString,估计你用的是VC6。你先换成2008或者2010版本,然后在试试我下面的办法。我在VC2008和WIN7上是好使的。在2008中,要这样声明CString
    CString str = L"什么";向TXT文件写入你想写的字符之前,首先写入两个额外的字节:0XFF、0XFE(我也不知道什么原因,以前人们就是这样告诉我的)
    然后就可以用 CArchive 写入你的字符了。打开TXT查看写入内容时,要以Unicode格式打开