指定したファイルを指定した文字コードで読み込み、
指定した文字コードで指定したファイル名に保存します。
uses System.IOUtils;
///<summary>
/// テキストファイルの文字コードを返還する
///</summary>
///<param name="SourceFileName">
/// 変換元のファイルのファイル名
///</param>
///<param name="SourceEncoding">
/// 変換元のファイルのエンコーディング
///</param>
///<param name="TargetFileName">
/// 変換したファイルのファイル名
///</param>
///<param name="TargetEncoding">
/// 変換したファイルの文字コード
///</param>
procedure ConvertFileEncoding(const SourceFileName: String; const SourceEncoding: TEncoding;
const TargetFileName: String; TargetEncoding: TEncoding);
begin
TFile.WriteAllText(
TargetFileName,
TFile.ReadAllText(SourceFileName, SourceEncoding),
TargetEncoding);
end;
使用例:EUC-JPのファイルをUTF8に変換します。
procedure TForm1.Button1Click(Sender: TObject);
var
EucJp: TEncoding;
Utf8: TEncoding;
begin
EucJp := TEncoding.GetEncoding(20932);
Utf8 := TEncoding.UTF8;
ConvertFileEncoding('C:\data\euc.txt', EucJp, 'C:\data\utc8.txt', Utf8);
最近のDelphiはライブラリが充実して、簡単に書けるようになりましたね。