[데브피아 이상민(goosia)님의 팁을 가져왔습니다.]
URLDecode 되는 함수들을 찾아서 이용해봤지만 한글까지 적용되지는 않더군요.
왜냐하면 한글은 그 표기가 2바이트가 모여서 하나가 되기 때문이죠.
그러니 인코딩을 하면 2바이트가 되는 특수문자를 디코딩하는 여타의 펑션으로를 않된
다는 거죠. 한글은 인코딩이 되면 %로 구분된넘이 2개거든요.
그래서 캐릭터 코드가 130이 넘어가면 % 를 두개 부쳐서 출력하게 했습니다.
그럼 유용하게 사용하시길...
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> Test UrlDecode </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="Goosia">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<BODY>
<%
Function URLDecode(Expression)
Dim strSource, strTemp, strResult, strchr
Dim lngPos, AddNum, IFKor
strSource = Replace(Expression, "+", " ")
For lngPos = 1 To Len(strSource)
AddNum = 2
strTemp = Mid(strSource, lngPos, 1)
If strTemp = "%" Then
If lngPos + AddNum < Len(strSource) + 1 Then
strchr = CInt("&H" & Mid(strSource, lngPos + 1, AddNum))
If strchr > 130 Then
AddNum = 5
IFKor = Mid(strSource, lngPos + 1, AddNum)
IFKor = Replace(IFKor, "%", "")
strchr = CInt("&H" & IFKor )
End If
strResult = strResult & Chr(strchr)
lngPos = lngPos + AddNum
End If
Else
strResult = strResult & strTemp
End If
Next
URLDecode = strResult
End Function
TEXT = "테스트에 성공했습니다. 특수문자: @@@@@@@ http://goosia.com/"
En_Text = Server.URLEncode(TEXT)
De_Text = URLDecode(En_Text)
Response.Write "<br>Input Data: " & TEXT
Response.Write "<br>Encode Data: " & En_Text
Response.Write "<br>Decode Data: " & De_Text
%>
</BODY>
</HTML>
URLDecode 되는 함수들을 찾아서 이용해봤지만 한글까지 적용되지는 않더군요.
왜냐하면 한글은 그 표기가 2바이트가 모여서 하나가 되기 때문이죠.
그러니 인코딩을 하면 2바이트가 되는 특수문자를 디코딩하는 여타의 펑션으로를 않된
다는 거죠. 한글은 인코딩이 되면 %로 구분된넘이 2개거든요.
그래서 캐릭터 코드가 130이 넘어가면 % 를 두개 부쳐서 출력하게 했습니다.
그럼 유용하게 사용하시길...
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> Test UrlDecode </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="Goosia">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<BODY>
<%
Function URLDecode(Expression)
Dim strSource, strTemp, strResult, strchr
Dim lngPos, AddNum, IFKor
strSource = Replace(Expression, "+", " ")
For lngPos = 1 To Len(strSource)
AddNum = 2
strTemp = Mid(strSource, lngPos, 1)
If strTemp = "%" Then
If lngPos + AddNum < Len(strSource) + 1 Then
strchr = CInt("&H" & Mid(strSource, lngPos + 1, AddNum))
If strchr > 130 Then
AddNum = 5
IFKor = Mid(strSource, lngPos + 1, AddNum)
IFKor = Replace(IFKor, "%", "")
strchr = CInt("&H" & IFKor )
End If
strResult = strResult & Chr(strchr)
lngPos = lngPos + AddNum
End If
Else
strResult = strResult & strTemp
End If
Next
URLDecode = strResult
End Function
TEXT = "테스트에 성공했습니다. 특수문자: @@@@@@@ http://goosia.com/"
En_Text = Server.URLEncode(TEXT)
De_Text = URLDecode(En_Text)
Response.Write "<br>Input Data: " & TEXT
Response.Write "<br>Encode Data: " & En_Text
Response.Write "<br>Decode Data: " & De_Text
%>
</BODY>
</HTML>
'asp' 카테고리의 다른 글
ASP 오류 번호 정리 (0) | 2007.05.03 |
---|---|
SerVariables컬렉션 사용법 (1) | 2007.05.03 |
암호화]ASP에서 base64로 변환(인코딩/디코딩)하는 함수 (0) | 2007.05.03 |
HTML 태그를 이용하여 캐시에 페이지 내용 저장하지 않기 (4) | 2007.05.03 |
클라이언트측에서의 신용카드 유효성 입증 방법 (1) | 2007.05.03 |