UrlEncoder.zip

소스 관리의 편의 문제로 현재 주석은 영어로 작성되어 있습니다.


ASPURL 디코딩하는 기능이 없어서, 제가 예전에 작성했던 CHttpClient를 기반으로 URL을 인코딩하고 디코딩할 수 있는 COM 컴포넌트를 만들어 봤습니다. 이 컴포넌트를 사용하려면 HyeongryeolUrlEncoder.dll을 설치하신 후, regsvr32.exe 프로그램으로 등록하시면 됩니다. (설치는 %WINDOWS%System32 폴더에 할 것을 권장합니다.)

다음은 ASP에서 컴포넌트를 사용하는 예제 코드입니다.
Set objEncoder = Server.CreateObject ("Hyeongryeol.UrlEncoder")
objEncoder.CodePage = Response.CodePage

strEncoded = objEncoder.Encode ("테스트 샘플")
strDecoded = objEncoder.Decode (strEncoded)
또한 위의 코드에서 보듯이, 이 컴포넌트는 코드 페이지 속성을 지원하는데, 이를 사용하면 UTF-8 사이트와 ANSI 한국어 사이트 사이에 서로 쿼리 스트링을 주고 받을 수 있습니다. 기본 코드 페이지는 CP_ACP입니다.

다음 두 개의 ASP 페이지는 UTF-8 사이트와 ANSI 한국어 사이트가 서로 쿼리 스트링을 주고 받는 예제입니다.
<%@ Language="VBScript" CodePage="65001" %>
<%
'
' 유니코드 사이트 (UTF-8, http://sitea/url.asp)
'
%>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>http://sitea/url.asp</title>
</head>
<body>
    전달된 문자열: <%=Request.QueryString ("passed")%><br />
    <br />

<%
    Set objEncoder = Server.CreateObject ("Hyeongryeol.UrlEncoder")
    objEncoder.CodePage = 949   ' 한국어 코드페이지로 설정.
%>

    <a href="http://siteb/url.asp?passed=<%=objEncoder.Encode ("테스트 한국어")%>">
        한국어 ANSI 문자열로 인코딩된 쿼리 스트링을 B 사이트에 전달하기.
    </a>
</body>
</html>
<%@ Language="VBScript" CodePage="949" %>
<%
'
' ANSI 사이트 (한국어, http://siteb/url.asp)
'
%>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
    <title>http://siteb/url.asp</title>
</head>
<body>
    전달된 문자열: <%=Request.QueryString ("passed")%><br />
    <br />

<%
    Set objEncoder = Server.CreateObject ("Hyeongryeol.UrlEncoder")
    objEncoder.CodePage = 65001   ' UTF-8 코드페이지로 설정.
%>

    <a href="http://sitea/url.asp?passed=<%=objEncoder.Encode ("테스트 한국어")%>">
        UTF-8 문자열로 인코딩된 쿼리 스트링을 A 사이트에 전달하기.
    </a>
</body>
</html>
신고

티스토리 툴바