urlencode解码:
<script language=vbscript>
Function vbChar(str)
vbChar=chr(str)
End Function
Function uc(str)
uc=hex(ascW(str))
End Function
</script>
<script language=javascript>
var glbEncode=new Array();
function reCode(str) {
var str=str.replace(/%([A-Z].)%(.{2})/g,"@$1$2").replace(/\+/g,"%20");
var t=str.split("@"),k,l=t.length;
for(var i=1;i<l;i++) {
k=t[i].substring(0,4);
if(!glbEncode[k])
glbEncode[k]=uc(vbChar(eval("0x"+k)));
t[i]=glbEncode[k]+t[i].substring(4);
}
str=unescape(t.join("%u"));
return str;
}
document.write(reCode("%D0%A1+%C7%E0%2C%CE%D2%B0%AE%C4%E3"))
</script>
urlencode加码:
<script language=vbscript>
Function vbChar(str)
vbChar=chrW(str)
End Function
Function reHex(str)
reHex=hex(asc(str))
End Function
</script>
<script language=javascript>
var glbEncode=new Object();
function urlEncode(str) {
str=escape(str).replace(/%u(.{4})/g,"@$1").replace(/%20/g,"+");
var t=str.split("@"),l=t.length,k;
for(var i=1;i<l;i++) {
k=t[i].substring(0,4);
if(!glbEncode[k])
glbEncode[k]=reHex(vbChar(eval("0x"+k))).replace(/(.{2})(.{2})/g,"%$1%$2");
t[i]=glbEncode[k]+t[i].substring(4);
}
return t.join("");
}
var str="小 青,我爱你";
document.write(urlEncode(str))
</script>
原理:
urlencode跟escape除了空格和字符值大于 255 的编码不一样其他都一样
posted on 2006-10-16 00:49
汪杰 阅读(1001)
评论(1) 编辑 收藏 引用 所属分类:
ajax