晴歩雨描

晴れた日は外に出て歩き、雨の日は部屋で絵を描く

JScript)Scripting.FileSystemObjectではUTF-8テキスト文字化けする。ADODB.Streamを使う。

備忘録として。

JScriptで、Scripting.FileSystemObjectを使って、UTF-8テキストファイルを読み書きすると文字化けする。

ADODB.Streamを使えば、解決する。

var fs = WScript.CreateObject("Scripting.FileSystemObject");
var ts = fs.OpenTextFile("inp.txt"); 
var str = ts.ReadAll();

var fso = WScript.CreateObject("Scripting.FileSystemObject");
var outfile = fso.CreateTextFile("out.txt", true, true);
outfile.Write(str);

↓↓↓(書き換え)↓↓↓

var sr = new ActiveXObject("ADODB.Stream");
sr.Type = 2;				// adTypeText
sr.charset = "utf-8";
sr.Open();
sr.LoadFromFile("inp.txt");
var txt = sr.ReadText(-1);		// adReadAll
sr.Close();

var sw = new ActiveXObject("ADODB.Stream");
sw.Type = 2;				// adTypeText
sw.charset = "utf-8";
sw.Open();
sw.WriteText(txt, 1);			// adWriteLine
sw.SaveToFile("out.txt", 2);	   	// adSaveCreateOverWrite
sw.Close();