WSH/JScriptでUTF-8のファイルを読み書きする方法をメモ。

// 書き込み例
writeFile("hoge.txt", "utf-8");
// 読込み例
var s = readFile("hoge.txt", "utf-8");
alert(s);

// ファイルの読込み
function readFile(fname, charset) {
  if (charset == undefined) {
    charset = "_autodetect_all";
  }
  var adTypeBinary = 1, adTypeText = 2;
  var adReadAll = -1,   adReadLine = -2;
  var s = new ActiveXObject("ADODB.Stream");
  s.Type = adTypeText;
  s.charset = charset;
  s.Open();
  s.LoadFromFile(fname);
  var text = s.ReadText(adReadAll);
  s.Close();
  return text;
}
// ファイルの保存
function writeFile(fname, text, charset) {
  if (charset == undefined) {
    charset = "_autodetect_all";
  }
  var adTypeBinary = 1, adTypeText = 2;
  var adSaveCreateNotExist = 1, adSaveCreateOverWrite = 2;
  var adWriteLine = 1;
  var s = new ActiveXObject("ADODB.Stream");
  s.Type = adTypeText;
  s.charset = charset;
  s.Open();
  s.WriteText(text, adWriteLine);
  s.SaveToFile(fname, adSaveCreateOverWrite);
  s.Close();
}

追記:

もしも、ファイルを読み込むときに、テキストファイルの文字コードを自動判定したい場合には、引数charsetに「_autodetect_all」を指定します。