[데브피아 이상민(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>

+ Recent posts