て、ことが以下のURLに書いてある。
ADODB.Stream を使ったファイルの読み書き - by AOK
こんな方法があるとはな~。
こっちはさらに、utf-8出力時のBOMをどう除去するか、という話
JavaScriptでファイルの書き込みをUTF-8で行う(htaまたは、wsh用) - jiroの日記
ADODB.Streamを2つ使い、Positionを移動することでBOMをskipして出力。なるほどなー。
とりあえずSJIS出力で我慢しといて、iconvで変換するか、とか考えたけど、最初からutf-8で書き出せれば便利だ。
/* ADODB.Stream - SaveOptionsEnum */
var adSaveCreateOverWrite = 2;
/* ADODB.Stream - StreamTypeEnum */
var adTypeBinary = 1;
var adTypeText = 2;
/* ADODB.Stream - StreamWriteEnum */
var adWriteChar = 0;
var adWriteLine = 1;
var st = new ActiveXObject("ADODB.Stream");
st.type = adTypeText;
st.charset = "utf-8";
st.open();
st.WriteText( なにか出力 , adWriteLine );
st.Position = 0;
st.Type = adTypeBinary;
st.Position = 3; ←utf8なら3
var bin = st.Read();
st.Close();
var stw = new ActiveXObject("ADODB.Stream");
stw.Type = adTypeBinary;
stw.Open();
stw.Write( bin );
stw.SaveToFile( 出力ファイル , adSaveCreateOverWrite );
stw.Close();
>> Home