📄 jsurlcode.txt
字号:
用JavaScript实现UrlEncode和UrlDecode功能
作者:天空诚 来源:中国Asp之家 时间:2008-1-27 网友评论0条 【大 中 小】
对url进行编码在服务器端我们可以使用asp中的server.urlencode,很方便实现。如:
<%
ss="中国asp之家欢迎您!Aspxhome.com"
response.write server.urlencode(ss)
%>
而在客户端我们可以使用js中encodeURI,encodeURIComponent函数来实现,但是经过这些函数编码的url地址都说UTF-8格式的,只能用在这种编码的网页。其它编码的网页将出现乱码,本文介绍了使用自定义函数来实现asp中的类似server.urlencode的功能:
<!--代码来自网络-->
<title>用JavaScript实现asp中的UrlEncode和UrlDecode功能 - 中国asp之家</title>
<script language="vbscript">
Function str2asc(strstr)
str2asc = hex(asc(strstr))
End Function
Function asc2str(ascasc)
asc2str = chr(ascasc)
End Function
</script>
<script language="javascript">
/*这里开始时UrlEncode和UrlDecode函数*/
function UrlEncode(str){
var ret="";
var strSpecial="!\"#$%&'()*+,/:;<=>?[]^`{|}~%";
for(var i=0;i<str.length;i++){
var chr = str.charAt(i);
var c=str2asc(chr);
//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)));
i+=5;
}else{
ret+=asc2str(parseInt("0x"+asc));
i+=2;
}
}else{
ret+= chr;
}
}
return ret;
}
ss="中国asp之家欢迎您!Aspxhome.com"
aa=UrlEncode(ss)
bb=UrlDecode(ss)
document.write("编码后"+aa+"<br>");
document.write("解码后:"+bb);
</script>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -