Stream オブジェクトを使って、テキストファイルの文字コードを変換する方法を紹介する。
サンプルスクリプト
With CreateObject("ADODB.Stream") '-------------------- ' テキストファイルを読み取る '-------------------- .Type = 2 '2: テキストデータを扱う .Charset = "euc-jp" .Open .LoadFromFile "C:\path\to\file.txt" Dim readedContent readedContent = .ReadText '-------------------- ' 読み取ったデータを書き戻す '-------------------- .Position = 0 .Charset = "utf-8" .WriteText readedContent .SetEOS '保存して閉じる .SaveToFile "C:\path\to\new-file.txt" .Close End With
説明
Stream オブジェクトのプロパティを設定する。
テキストデータを扱うため、Type プロパティに 2 を設定する。
.Type = 2 '2: テキストデータを扱う .Charset = "euc-jp"
Open メソッドでストリームを開く。
LoadFromFile メソッドで、指定したファイルをストリームに読み込む。
.Open .LoadFromFile "C:\path\to\file.txt"
ReadText メソッドでデータを読み取り、変数に保持しておく。
Dim readedContent readedContent = .ReadText
読み取ったデータをストリームに書き戻す。
Position プロパティに 0 を設定し、ストリームの位置を先頭に戻す。
(ストリームの位置が先頭にないと、文字コードが設定できないため)
WriteText メソッドで変数に保持していたデータを書き出す。
SetEOS メソッドで書き出しが終わった位置をストリームの末尾に設定する。
.Position = 0 .Charset = "utf-8" .WriteText readedContent .SetEOS
SaveToFile メソッドでストリームのデータをテキストファイルに書き込む。
Close メソッドでストリームを閉じる。
.SaveToFile "C:\path\to\new-file.txt" .Close
以上で文字コード変換は完了。