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」を指定します。