我从Oracle数据库导出txt文件内容的编码默认是asni,我想使它变成utf-8编码,请问如何写代码啊?
如:
procedure TForm1.Button1Click(Sender: TObject);
var S:string;
begin
 with TMemoryStream.Create do try
  S := #$EF#$BB#$BF;
  Write(S[1], Length(S));
  S := AnsiToUtf8('我来试试编码转换');
  Write(S[1], Length(S));
  Position := 0;
  SaveToFile('c:\test.txt');
  finally
  free;
  end;
 end;
end.这只能转化一条字符串,那么整篇txt该如何转化呢?谢谢

解决方案 »

  1.   

    用TStringList读入整个文件,(理论是不超过2G都可以),然后,用AnsiToUtf8转
    var
      t:TStringList;
      s:string;
    begin
      t:=TStringList.Create;
      t.LoadFromFile(你的文件);
      s:=AnsiToUtf8(t.txt);
      t.clear;
      t.Add(s);
      t.savetofile(新文件);
      t.free;
    end;
      

  2.   

    utf-8编码 有什么优势?用它干啥?
      

  3.   

    procedure TFrmIEPlugins.Button2Click(Sender: TObject);
    var
        stm:    TStream;
        txt:    string;
    begin
        stm := TFileStream.Create('d:\abc.txt', fmOpenReadWrite);
        try
            SetLength(txt, stm.Size);
            stm.Position := 0;
            stm.Read(txt[1], stm.Size);
            txt := AnsiToUtf8(txt);
            stm.Position := 0;
            stm.Write(txt[1], Length(txt));
        finally
            stm.Free;
        end;
    end;
      

  4.   

    用PilotEdit转化一下即可:http://topic.csdn.net/u/20100327/22/0b5656cb-f2c7-49c5-931c-1bd639ace04d.html