Delphi XE3でファイルの文字コードを変換する

指定したファイルを指定した文字コードで読み込み、
指定した文字コードで指定したファイル名に保存します。

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はライブラリが充実して、簡単に書けるようになりましたね。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください