ASP 리턴URL URLEncode저장
--현재 페이지를 엔코딩해서 가져갈 수 있게 만듬
nowpage=request.ServerVariables("SCRIPT_NAME") & "?" & request.ServerVariables("QUERY_STRING")
If Right(nowpage,1)="?" Then nowpage=Left(nowpage,Len(nowpage)-1)
Session("nowpage")=nowpage
seNowPage = server.URLEncode(session("nowpage"))
--리턴url을 엔코딩해서 가져가는 이유는 특수문자나 파라미터 등을 가져갈때 URL에 문제가 생길 수 있기 때문이다. 공백도 마찬가지..때문에 리턴url을 엔코딩해서 파라미터로 보내주면 이상없이 보낼 수 있다.
--아이피를 기준으로 참일때만 실행하기 위해 사용
bool_lawseecom =false
if Request.ServerVariables("REMOTE_ADDR") = "112.112.112.112" then bl_lawsee = True
--엔코딩된 문서를 다시 풀어주는 함수
--아래함수는 어디선가 퍼다 쓴 것인데 기억이 안남...ㄳㄳ;;;
Function FnURLDecode(sStr)
Dim sRet, reEncode, sChar
Dim i
if isnull(sStr) then
sStr = ""
else
Set reEncode = New RegExp
reEncode.IgnoreCase = True
reEncode.Pattern = "^%[0-9a-f][0-9a-f]$"
sStr = Replace(sStr, "+", " ")
sRet = ""
For i = 1 To Len(sStr)
sChar = Mid(sStr, i, 3)
If reEncode.Test(sChar) Then
If CInt("&H" & Mid(sStr, i + 1, 2)) < 128 Then
sRet = sRet & Chr(CInt("&H" & Mid(sStr, i + 1, 2)))
i = i + 2
Elseif mid(sStr, i+3, 1) ="%" then
sRet = sRet & Chr(CInt("&H" & Mid(sStr, i + 1, 2) & Mid(sStr, i + 4, 2)))
i = i + 5
else
sRet = sRet & Chr(CInt("&H" & Mid(sStr, i + 1, 2) & "00") + asc(mid(sStr,i+3,1)))
i = i + 3
'이부분이 중요하다.
' 기존 urldecode함수가 몇 몇 글자들에서 에러를 내는 이유는 3바이트로 인코딩 되어있는 부분이 있기 때문. ascII로 변형되어 인코딩 된 부분이 존재한다.
End If
Else
sRet = sRet & Mid(sStr, i, 1)
End If
Next
end if
FnURLDecode = sRet
End Function