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