js取还是用asp<script> var str=<%= Request("word") %>;//接着你就可以在js中调用str了</script>
ASP一般会自动还原的 除非你做了什么设置,最好把你代码都弄出来!
IE...<script language="vbscript"> function urldecode(encodestr) Dim newstr,havechar,lastchar,i,char_c,next_1_c,next_1_Num newstr="" havechar=false lastchar="" for i=1 to len(encodestr) char_c=mid(encodestr,i,1) if char_c="+" then newstr=newstr & " " elseif char_c="%" then next_1_c=mid(encodestr,i+1,2) next_1_num=cint("&H" & next_1_c) if havechar then havechar=false newstr=newstr & chr(cint("&H" & lastchar & next_1_c)) else if abs(next_1_num)<=127 then newstr=newstr & chr(next_1_num) else havechar = true lastchar = next_1_c end if end if i=i+2 else newstr=newstr & char_c end if next urldecode=newstr end function </script> <script type="text/javascript"> var strng = '%B9%C9%C6%B1'; window.execScript('VBStr = ' + strng.replace(/%([^%]{2})%([^%]{2})/g, "CHR(&H$1$2)&").slice(0,-1), "VBS"); //或者: //window.execScript('VBStr = urldecode("' + strng + '")', "VBS"); alert(VBStr); </script>
<script type="text/javascript"> var strng = '%B9%C9%C6%B1'; var callback = function () { alert(arguments[0]); }; window.execScript('callback(' + strng.replace(/%([^%]{2})%([^%]{2})/g, "CHR(&H$1$2)&").slice(0,-1) + ')', "VBS"); </script>换个方法
var Request = function(arg){ var ws = location.search.substring(1, location.search.length); var arrReturn = new Array(); var strReturn = new String(); if (ws != ""){ var val = ws.split("&"); for (i=0 ; i<val.length ; i++){ if (arg == val[i].split("=")[0]){ strReturn = val[i].split("=")[1]; break; } else{ arrReturn.push(val[i].split("=")[1]); } } } return (typeof arg == 'undefined')?arrReturn:strReturn; };
var str=<%= Request("word") %>;//接着你就可以在js中调用str了</script>
除非你做了什么设置,最好把你代码都弄出来!
function urldecode(encodestr)
Dim newstr,havechar,lastchar,i,char_c,next_1_c,next_1_Num
newstr=""
havechar=false
lastchar=""
for i=1 to len(encodestr)
char_c=mid(encodestr,i,1)
if char_c="+" then
newstr=newstr & " "
elseif char_c="%" then
next_1_c=mid(encodestr,i+1,2)
next_1_num=cint("&H" & next_1_c)
if havechar then
havechar=false
newstr=newstr & chr(cint("&H" & lastchar & next_1_c))
else
if abs(next_1_num)<=127 then
newstr=newstr & chr(next_1_num)
else
havechar = true
lastchar = next_1_c
end if
end if
i=i+2
else
newstr=newstr & char_c
end if
next
urldecode=newstr
end function
</script>
<script type="text/javascript">
var strng = '%B9%C9%C6%B1';
window.execScript('VBStr = ' + strng.replace(/%([^%]{2})%([^%]{2})/g, "CHR(&H$1$2)&").slice(0,-1), "VBS");
//或者:
//window.execScript('VBStr = urldecode("' + strng + '")', "VBS");
alert(VBStr);
</script>
IE里JS有execScript方法。可以利用VBS的CHR方法
而给出了那段VBS,基本可以不用因为只需要CHR方法,其它的处理完全可以用JS实现。。只不过为了直接展示没写处理而已。
<script type="text/javascript">
var strng = '%B9%C9%C6%B1';
var callback = function () {
alert(arguments[0]);
};
window.execScript('callback(' + strng.replace(/%([^%]{2})%([^%]{2})/g, "CHR(&H$1$2)&").slice(0,-1) + ')', "VBS");
</script>换个方法
var Request = function(arg){
var ws = location.search.substring(1, location.search.length);
var arrReturn = new Array();
var strReturn = new String(); if (ws != ""){
var val = ws.split("&");
for (i=0 ; i<val.length ; i++){
if (arg == val[i].split("=")[0]){
strReturn = val[i].split("=")[1];
break;
}
else{
arrReturn.push(val[i].split("=")[1]);
}
}
}
return (typeof arg == 'undefined')?arrReturn:strReturn;
};
www.blueidea.com/user/qswh/qswhU2GB.js
var strng = '%B9%C9%C6%B1';
中加英文的话怎么个修改能正确运行?
如var strng = 'ADA704%B9%C9%C6%B1';
就运行不了了马上解贴!
因为我那个式子只是针对双ASCII的(中文)的字符.
你可以参考我从网上找的那个decodeURL,里的方法.
写个类似的JS方法,转换CHR的时候就用IE ONLY 的execScript callback VBS的CHR函数就行了...