JS+VBscript混合版的urldecode: 复制内容到剪贴板 代码:VBscript:
Function str2asc(strstr)
str2asc = hex(asc(strstr))
End Function
Function asc2str(ascasc)
asc2str = chr(ascasc)
End Function
JS:
function URLencode(str) {
var ret = "";
var strSpecial = "!\"#$%&'()*+,/:;<=>?[]^`{|}~%";
var tt= "";
for(var i=0;i<str.length;i++) {
var chr = str.charAt(i);
var c = str2asc(chr);//这里用到了VBscript
tt += chr+":"+c+"n";
if(parseInt("0x"+c) > 0x7f) {
ret += "%"+c.slice(0,2)+"%"+c.slice(-2);
}else {
if(chr == " ") ret += "+";
else if(strSpecial.indexOf(chr)!=-1) ret += "%"+c.toString(16);
else ret += chr;
}
}
return ret;
}
function URLdecode(str) {
var ret = "";
for(var i=0;i<str.length;i++) {
var chr = str.charAt(i);
if(chr == "+") {
ret += " ";
}else if(chr=="%") {
var asc = str.substring(i+1,i+3);
if(parseInt("0x"+asc)>0x7f) {
ret += asc2str(parseInt("0x"+asc+str.substring(i+4,i+6)));//这里用到了VBscript
i += 5;
}else {
ret += asc2str(parseInt("0x"+asc));//这里用到了VBscript
i += 2;
}
}else {
ret+= chr;
}
}
return ret;
}
不过通过这通折腾,对PHP的urlencode的编码算法,却比较了解了一些,自己对JS+VBscript混合版的urldecode改写了一下,竟然成功了,但使用上还有不足,在这里也请各位高手能继续完善一下。