ASP 서버 개체에는 주소를 인코딩할 수 있는 URLEncode 메서드가 있지만 해당 디코딩 기능이 없다는 것을 알고 있습니다. 다음 함수는 URLEncode를 디코딩할 수 있습니다. 다음 코드는 kesion 시스템에서 가져온 것입니다. 이는 실제로 훌륭하며 utf8 형식을 지원합니다.
다음과 같이 코드 코드를 복사합니다.
'===============================================
'함수 이름: URLDecode
'기능: URL 디코딩
'===============================================
기능 URLDecode(ByVal urlcode)
희미한 시작, 최종, 길이, 문자, i, butf8, 통과
희미한 왼쪽 str, 오른쪽 str, finalstr
희미한 b0,b1,bx,blength,위치,u,utf8
오류 발생 시 다음 재개
b0 = 배열(192,224,240,248,252,254)
urlcode = 바꾸기(urlcode,+, )
통과 = 0
utf8 = -1
길이 = Len(urlcode) : 시작 = InStr(urlcode,%) : 최종 = InStrRev(urlcode,%)
start = 0 또는 length < 3이면 URLDecode = urlcode : 함수 종료
leftstr = Left(urlcode,start - 1) : rightstr = Right(urlcode,length - 2 - final)
i = 시작부터 끝까지
char = Mid(urlcode,i,1)
char = %Then이면
bx = URLDecode_Hex(Mid(urlcode,i + 1,2))
bx > 31이고 bx < 128이면
나는 = 나는 + 2
finalstr = finalstr & ChrW(bx)
ElseIf bx > 127 Then
나는 = 나는 + 2
utf8 < 0이면
butf8 = 1 : blength = -1 : b1 = bx
위치 = 4에서 0으로 단계 -1
b1 >= b0(위치) 및 b1 < b0(위치 + 1)인 경우 그러면
길이 = 위치
종료 대상
종료 조건
다음
blength > -1이면
위치 = 0의 경우 길이를 늘리려면
b1 = URLDecode_Hex(Mid(urlcode,i + 위치 * 3 + 2,2))
b1 < 128 또는 b1 > 191이면 butf8 = 0: 종료
다음
또 다른
하지만f8 = 0
종료 조건
butf8 = 1이고 blength = 0이면 butf8 = -2
butf8 > -1 그리고 utf8 = -2이면 i = start - 1 : finalstr = : pass = 1
utf8 = butf8
종료 조건
통과 = 0이면
utf8 = 1이면
b1 = bx : u = 0 : blength = -1
위치 = 4에서 0으로 단계 -1
b1 >= b0(위치) 및 b1 < b0(위치 + 1)인 경우 그러면
길이 = 위치
b1 = (b1 xOr b0(위치)) * 64 ^ (위치 + 1)
종료 대상
종료 조건
다음
blength > -1이면
위치 = 0의 경우 길이를 늘리려면
bx = URLDecode_Hex(Mid(urlcode,i + 2,2)) : i = i + 3
bx < 128 또는 bx > 191이면 u = 0: 종료
u = u + (bx And 63) * 64 ^ (blength - 위치)
다음
u > 0이면 finalstr = finalstr & ChrW(b1 + u)
종료 조건
또 다른
b1 = bx * &h100 : u = 0
bx = URLDecode_Hex(Mid(urlcode,i + 2,2))
bx > 0이면
당신 = b1 + bx
나는 = 나는 + 3
또 다른
Left(urlcode,1) = %이면 다음
u = b1 + Asc(Mid(urlcode,i + 3,1))
나는 = 나는 + 2
또 다른
u = b1 + Asc(Mid(urlcode,i + 1,1))
나는 = 나는 + 1
종료 조건
종료 조건
finalstr = finalstr & Chr(u)
종료 조건
또 다른
통과 = 0
종료 조건
종료 조건
또 다른
finalstr = 최종 문자열 및 문자
종료 조건
다음
URLDecode = leftstr & finalstr & rightstr
기능 종료
함수 URLDecode_Hex(ByVal h)
오류 발생 시 다음 재개
h = &h & Trim(h) : URLDecode_Hex = -1
Len(h) <> 4이면 함수 종료
isNumeric(h)이면 URLDecode_Hex = cInt(h)
기능 종료