あー、UrlEncodeだったのか。見落としてた。
こんなのでどうだろう。JScriptだとバイナリ操作が面倒だからなぁ……。
function urlEncode(text, encoding) { //encodingは"utf-8"とか"shift-jis"とか"euc-jp"とか
var ados = new ActiveXObject("ADODB.Stream"); //まあこれは適当に許可を与えるなりして
ados.type = 2;
ados.charset = encoding;
ados.open();
ados.writeText(text);
ados.position = 0;
ados.type = 1;
var xmldoc = new ActiveXObject("Microsoft.XMLDOM"), elem = xmldoc.createElement("tmp");
elem.dataType = "bin.hex";
elem.nodeTypedValue = ados.read();
ados.close();
var bin = elem.text, len = bin.length, retval = new Array(), i = 0;
retval.push("");
switch (encoding.toLowerCase()) { //BOMを無視するため
case "utf-8" : i = 6; break;
case "unicode":
case "utf-16" : i = 4; break;
}
for (; i < len; i += 2)
retval.push(bin.substr(i, 2));
return retval.join("%");
}