asfman
android developer
posts - 90,  comments - 213,  trackbacks - 0

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 汪杰 阅读(976) 评论(1)  编辑 收藏 引用 所属分类: ajax

FeedBack:
# re: 客户端的urlencode和dencode
2006-10-16 15:54 | 汪杰
<script language=vbscript>
Function vbChar(str)
vbChar=chr(str)
End Function
Function toHex(str)
toHex=hex(ascW(str))
End Function
</script>
<script language=javascript>
var glb=[];
function deUrlencode(str) {
str=str.replace(/%([A-Z].)%(.{2})/g,"@$1$2").replace(/\+/g,"%20");
var t=str.split("@"),l=t.length,k;
for(var i=1;i<l;i++) {
k=t[i].substring(0,4);
if(!glb[k])
glb[k]=toHex(vbChar(eval("0x"+k)));
t[i]=glb[k]+t[i].substring(4);
}
return unescape(t.join("%u"));
}
alert(deUrlencode("%B7%EF%BB%CB"));
</script>  回复  更多评论
  
只有注册用户登录后才能发表评论。

<2024年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用链接

留言簿(15)

随笔分类(1)

随笔档案(90)

文章分类(727)

文章档案(712)

相册

收藏夹

http://blog.csdn.net/prodigynonsense

友情链接

最新随笔

搜索

  •  

积分与排名

  • 积分 - 457929
  • 排名 - 6

最新随笔

最新评论

阅读排行榜

评论排行榜