?? 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 + -