ASP 에서 구현 되 는 URLEncode,URLDecode 사용자 정의 함수
ASP 의 request 는 url 인 코딩 을 거 친 문자열 을 자동 으로 디 코딩 하지만 Request.Binary Read(Request.TotalBytes)가 post 데 이 터 를 가 져 올 때 디 코딩 되 지 않 기 때문에 디 코딩 을 해 야 합 니 다.
다음은 제 가 찾 은 ASP 에서 server.urlencode 함수 의 디 코딩 함수 입 니 다.
Function URLDecode(enStr)
dim deStr,strSpecial
dim c,i,v
deStr=""
strSpecial="!""#$%&'()*+,.-_/:;< =>?@[/]^`{|}~%"
for i=1 to len(enStr)
c=Mid(enStr,i,1)
if c="%" then
v=eval("&h"+Mid(enStr,i+1,2))
if inStr(strSpecial,chr(v))>0 then
deStr=deStr&chr(v)
i=i+2
else
v=eval("&h"+ Mid(enStr,i+1,2) + Mid(enStr,i+4,2))
deStr=deStr & chr(v)
i=i+5
end if
else
if c="+" then
deStr=deStr&" "
else
deStr=deStr&c
end if
end if
next
URLDecode=deStr
End function
인 코딩 함 수 를 추가 합 니 다.이것 은 server.urlencode 와 다른 점 은 server.urlencode 가 html 또는 xml 등 라벨 을 추가 합 니 다.예 를 들 어인 코딩 도 할 수 있 지만 아래 의 이 함 수 는 할 수 없습니다.나 는 post 를 사용 할 때 xml 을 사용 하기 때문에 아래 의 것 으로 인 코딩 을 하고 디 코딩 을 한다.
private Function URLEncoding(vstrIn)
strReturn = ""
For i = 1 To Len(vstrIn)
ThisChr = Mid(vStrIn,i,1)
If Abs(Asc(ThisChr)) < &HFF Then
strReturn = strReturn & ThisChr
Else
innerCode = Asc(ThisChr)
If innerCode < 0 Then
innerCode = innerCode + &H10000
End If
Hight8 = (innerCode And &HFF00)/ &HFF
Low8 = innerCode And &HFF
strReturn = strReturn & "%" & Hex(Hight8) & "%" & Hex(Low8)
End If
Next
URLEncoding = strReturn
End Function