在delphi2010下面写文本文件,文件编码与内容均采用UTF-8时,读/写带汉字的数据正常。问题:客户要求文件编码ANSI,文件内容采用GB2312/GBK编码方式。
在delphi7下正常读写操作。
而delphi2010下这种读写汉字会变成乱码,如何处理呢?

解决方案 »

  1.   

    2010中好像可以指定编码方式,比如TEncoding.Unicode,根据需要自己定,保存文本时应该有这个属性
      

  2.   

    谢谢bdmh关注
    呵呵,原文件编码默认为ansi,而直接追加utf-8编码内容导致乱码。关于d2010写文件总结:
       1.用TextFile写文件时,以前delphi7下代码不用任何改动直接通过。
       2.用TFile.AppendAllText写文件时,一行代码实现(d7不支持)
         TFile.AppendAllText(filepath,'渴望!',Tencoding.Default); {默认 UTF8 格式}
       3.注意保持文件编码与内容编码一致就OK!
      

  3.   

    如果你是用StringList操作的,在Savetofile的时候可以指定编码方式. Savetofile是一个重载的函数.
    例如 a: TStringList;   a.Savtofile('c:\1.txt', TEncoding.GetASCII);
      

  4.   

    上楼的TEncoding.GetASCII要改为 TEncoding.Default