이 글에서는 ASP에서 제공되는 server.urlencode와는 다른 ASP에서 구현되는 URLEncode 및 URLDecode 사용자 정의 기능을 주로 소개합니다.
Ajax에서 게시물을 작성할 때, 서버에서 얻은 데이터가 항상 왜곡되어 있음을 발견했습니다. 인터넷에서 일부 솔루션을 살펴보았지만 제 게시물이 왜곡된 데이터 때문에 파악하지 못했습니다. , 서버측 XML을 구문 분석할 수 없거나 오류가 발생했습니다. 그래서 게시하기 전에 인코딩한 다음 서버에서 디코딩하면 문제가 해결되지만 데이터가 클 경우 속도에 영향을 미칠 수 있습니다.
ASP의 요청은 URL 인코딩된 문자열을 자동으로 디코딩하지만 Request.BinaryRead(Request.TotalBytes)는 게시 데이터를 얻을 때 이를 디코딩하지 않으므로 디코딩해야 합니다.
다음은 제가 찾은 ASP의 server.urlencode 함수의 디코딩 기능입니다.
다음과 같이 코드 코드를 복사합니다.
함수 URLDecode(enStr)
희미한 deStr,strSpecial
희미한 c,i,v
deStr=""
strSpecial="!""#$%&'()*+,.-_/:;< =>?@[/]^`{|}~%"
i=1에서 len(enStr)까지
c=중간(enStr,i,1)
c="%"이면
v=eval("&h"+Mid(enStr,i+1,2))
inStr(strSpecial,chr(v))>0이면
deStr=deStr&chr(v)
나는=나+2
또 다른
v=eval("&h"+ Mid(enStr,i+1,2) + Mid(enStr,i+4,2))
deStr=deStr & chr(v)
나는=나+5
종료하면
또 다른
c="+"이면
deStr=deStr&" "
또 다른
deStr=deStr&c
종료하면
종료하면
다음
URLDecode=deStr
기능 종료
또 다른 인코딩 기능이 첨부되어 있습니다. 이것과 server.urlencode의 차이점은 server.urlencode가 html이나 xml과 같은 태그를 변환한다는 것입니다.
인코딩도 수행되지만 아래 기능은 수행되지 않습니다. post를 사용할 때 xml을 사용하기 때문에 다음을 사용하여 인코딩하고 디코딩합니다.
다음과 같이 코드 코드를 복사합니다.
비공개 함수 URLEncoding(vstrIn)
strReturn = ""
i = 1의 경우 Len(vstrIn)으로
ThisChr = Mid(vStrIn,i,1)
Abs(Asc(ThisChr)) < &HFF Then
strReturn = strReturn & ThisChr
또 다른
innerCode = Asc(ThisChr)
innerCode < 0이면
innerCode = innerCode + &H10000
종료 조건
Hight8 = (innerCode 및 &HFF00)/ &HFF
Low8 = innerCode 및 &HFF
strReturn = strReturn & "%" & Hex(Hight8) & "%" & Hex(Low8)
종료 조건
다음
URLEncoding = strReturn
기능 종료