안규 공부방

ACTIVE SERVER PAGE > URLEncode - ANSI - 인코딩 하자. URLEcode 함수

등록일 : 2017-07-04 17:48 조회수 : 93,207

ASP에서 숫자, 알파벳 문자가 아닌 것(0~9, a~z이 아닌 문자)을 아스키 헥사 코드로 변환시켜주는 메쏘드가 있다.

그것은 바로 Server.UrlEncode이다.

이번시간에는 이 함수를 사용하지 않고 다른 함수를 이용해서 URL 인코딩 해보자.

대상문자열
http://ankyu.entersoft.kr/default.asp?id=123&usr=ankyu&key=엔터소프트

Server.URLEncode() 사용 예

http%3A%2F%2Fankyu%2Eentersoft%2Ekr%2Fdefault%2Easp%3Fid%3D123%26usr%3Dankyu%26key%3D%BF%A3%C5%CD%BC%D2%C7%C1%C6%AE



URLEncode() 함수 사용 예

http%3A%2F%2Fankyu.entersoft.kr%2Fdefault.asp%3Fid%3D123%26usr%3Dankyu%26key%3D%BF%A3%C5%CD%BC%D2%C7%C1%C6%AE

 
		 Public Function URLEncode(URLStr)

			 Dim sURL                '** 입력받은 URL 문자열
			Dim sBuffer             '** Encoding 중의 URL 을 담을 Buffer 문자열
			Dim sTemp               '** 임시 문자열
			Dim cChar               '** URL 문자열 중의 현재 Index 의 문자

			Dim Index

			 On Error Resume Next

			 Err.Clear
			 sURL = Trim(URLStr)     '** URL 문자열을 얻는다.
			 sBuffer = ""            '** 임시 Buffer 용 문자열 변수 초기화.


			 '******************************************************
			 '* URL Encoding 작업
			'******************************************************

			 For Index = 1 To Len(sURL)
				 '** 현재 Index 의 문자를 얻는다.
				 cChar = Mid(sURL, Index, 1)

				 If cChar = "0" Or _
					(cChar >= "1" And cChar <= "9") Or _
					(cChar >= "a" And cChar <= "z") Or _
					(cChar >= "A" And cChar <= "Z") Or _
					cChar = "-" Or _
					cChar = "_" Or _
					cChar = "." Or _
					cChar = "*" Then

					 '** URL 에 허용되는 문자들 :: Buffer 문자열에 추가한다.
					 sBuffer = sBuffer & cChar

				 ElseIf cChar = " " Then
					 '** 공백 문자 :: + 로 대체하여 Buffer 문자열에 추가한다.
					 sBuffer = sBuffer & "+"
				 Else
					 '** URL 에 허용되지 않는 문자들 :: % 로 Encoding 해서 Buffer 문자열에 추가
					sTemp = CStr(Hex(Asc(cChar)))

					 If Len(sTemp) = 4 Then
						 sBuffer = sBuffer & "%" & Left(sTemp, 2) & "%" & Mid(sTemp, 3, 2)
					 ElseIf Len(sTemp) = 2 Then
						 sBuffer = sBuffer & "%" & sTemp
					 End If
				 End If
			 Next


			 '** Error 처리
			If Err.Number > 0 Then
				 URLEncode = ""
				 Exit Function
			 End If

			 '** 결과를 리턴한다.
			 URLEncode = sBuffer
			 Exit Function

		 End Function



		 Function URLEncode_Gb(ByVal str)
			Dim i,s
			Dim B,bCode,gb,Hight8b,Low8b
			s = ""
			For i = 1 To Len(str)
				B = Mid(str,i,1)
				bCode=Abs(Asc(B))
				If (bCode>=48 And bCode<=57) Or (bCode>=65 And bCode<=90) Or (bCode>=97 And bCode<=122) Or bCode=42 Or bCode=45 Or bCode=46 Or bCode=64 Or bCode=95 Then 
					s=s & B
				ElseIf bCode=32 Then 
					s=s & "+"
				ElseIf bCode<128 Then   
					s=s & "%" & Right("00" & Hex(bCode),2)
				Else 
					gb = Asc(B)
					If gb < 0 Then
						gb = gb + &H10000   
					End If
					Hight8b = (gb  And &HFF00) / &H100  
					Low8b = gb And &HFF   
					s = s & "%" & Hex(Hight8b) &  "%" & Hex(Low8b)
				End If  
			Next
			URLEncode_Gb = s
		End Function

 
※ 혹시 도움이 되셨다면 댓글에 한마디 남겨주세요!
작성자   비밀번호
자동글 방지     (자동글 방지 기능입니다.)
내용   댓글달기 
이메일 문의 : cak0280@nate.com  
Copyright 2000 By ENTERSOFT.KR All Rights Reserved.