用ASP應(yīng)用程序?qū)崿F(xiàn)自己的UrlDeCode的實(shí)例代碼分享
這篇文章跟大家一起分享學(xué)習(xí)的是關(guān)于用ASP應(yīng)用程序?qū)崿F(xiàn)自己的UrlDeCode,希望能夠給大家?guī)?lái)幫助或啟發(fā)。
URL編碼是指為了將信息通過(guò)URL進(jìn)行傳輸,所以必須將某些含有特殊意義的字符進(jìn)行替換的一種編碼方式,在asp中我們都知道有一個(gè)Server.URLEncode的函數(shù)可以完成這個(gè)功能。即:
如果有空格就用%20代替,如果有其它字符就用%ASCII代替,如果有漢字等四個(gè)字節(jié)的字符,就用兩個(gè)%ASCII來(lái)代替。不過(guò)有時(shí)候我們也需要將經(jīng)過(guò)這種編碼的字符串進(jìn)行解碼,但asp并沒(méi)有提供相關(guān)的函數(shù),這給我們處理問(wèn)題帶來(lái)了一定的麻煩。其實(shí)我們只要知道了編碼規(guī)則后,就可以用asp代碼來(lái)實(shí)現(xiàn)我們自己的URlDecode函數(shù)了。
具體實(shí)現(xiàn)如下:
function urldecode(encodestr)
newstr=""
havechar=false
lastchar=""
for i=1 to len(encodestr)
char_c=mid(encodestr,i,1)
if char_c="+" then
newstr=newstr & " "
elseif char_c="%" then
next_1_c=mid(encodestr,i+1,2)
next_1_num=cint("&H" & next_1_c)
if havechar then
havechar=false
newstr=newstr & chr(cint("&H" & lastchar & next_1_c))
else
if abs(next_1_num)<=127 then
newstr=newstr & chr(next_1_num)
else
havechar=true
lastchar=next_1_c
end if
end if
i=i+2
else
newstr=newstr & char_c
end if
next
urldecode=newstr
end function