ASP에서 CodePage 고찰

ASP에서 CodePage 설정에 따라 문자열이 어떻게 처리가 되는지를 살펴보자.

<%@ CodePage=65001 Language="VBScript"%>

<%  
Option Explicit

Dim sFileName, sBuffer

sFileName = "utf8.txt"  
sBuffer = ReadFromTextFile(sFileName, "utf-8")  
ShowStringInfo sBuffer

'read utf-8  
Function ReadFromTextFile (sFile, sCharSet)  
    Dim oStream, str

    Set oStream = Server.CreateObject("adodb.stream")  
    oStream.Type = 2 'for text type  
    oStream.Mode = 3 'adModeWrite  
    oStream.Charset = sCharSet  
    oStream.Open  
    oStream.LoadFromFile server.MapPath(sFile)  
    str = oStream.ReadText  
    oStream.Close  
    Set oStream=nothing

    ReadFromTextFile=str  
End Function

Function ShowStringInfo(s)  
    Dim sHex

    sHex = GetHexString(s)  
    Response.Write s & ", Length=" & Len(s) & ", Hex=" & sHex  
End Function

Function GetHexString(s)  
    Dim i  
    Dim char  
    Dim result

    result = "0x"  
    For i = 1 To Len(s)  
        char = AscW(Mid(s, i, 1))  
        result = result & "[" & hex(char) & "]"  
    Next

    GetHexString = result  
End Function

%>    

위의 결과는

한글.txt, Length=6, Hex=0x\[D55C\]\[AE00\]\[2E\]\[74\]\[78\]\[74\]  

만약 CodePage를 949로 바꾸었다면

한글.txt, Length=6, Hex=0x\[D55C\]\[AE00\]\[2E\]\[74\]\[78\]\[74\]  

브라우져로 보면 “한글.txt”가 같아 보이지만 전자는 UTF-8 코드이고, 후자는 CP949이다.

ReadFromTextFile에서 리턴되는 문자열은 CodePage에 상관없이 유니코드페이지가 사용되고, Response.Write 하면서 CodePage에 따라서 문자열 변환이 이루어 진다.

Response.CodePage

Classic ASP에서 UTF-8을 사용하기 위해서 Response.CodePage = 65001 을 했더니 “Object doesn’t support this property” 란 오류가 발생한다.

MSDN에서는 IIS 5.0에서 되어있는데 지원을 안하네. 윈도우 2000 서버라서 그런가?
해결방법을 찾는 중…..

[april fool’s day] 오늘 글로벌 기업 이씨플라자 정기총회가 열립니다.






창립 20주년을 맞는 글로벌 기업 이씨플라자 정기총회가 4월 2일에 열립니다. 4월 15일 예정이었는데 임 전 회장님의 건강상의 문제로 좀 앞당겨졋다고 합니다.
 
지금 주요 국가 지사장들이 이 총회에 참석하기 위해서 바삐 들어오고 있는 인천공항에 나와 있습니다. 이번 총회는 이씨플라자가 처음 만들어지고 10여년을 지내온 강동구 성내동 옛 본사 건물에서 이루어진다고 합니다.

처음에는 별 시선도 받지 못했던 무역인의 거리 강동대로가 이제는 한국의 거래 중심 심장으로로서 성장하게 된 데는 이씨플라자의 역할이 작다고는 할 수 없을것 같습니다.

박인규 회장님은 하루하루가 힘들었지만 그래도 꿈을 잃지 않고 꾸준히 한 길을 걸었던게 오늘의 이씨플라자를 만들지 않았을까 회고를 합니다. 길을 걸을면서 도움을 주웠던 사장, 지사장들, 그리고 직원들 도움이 없었다면 불가능했을거라는 첨언도 합니다.

이씨플라자 강동구 옛 본사에는 아직도 “개나발”이란 플랭카드가 걸려있습니다. 이제는 좀 내려도 되지 않냐는 직원들의 얘기에도 현 사장이 반대한다고 하네요.

20년을 맞은 이씨플라자. 아직도 예전과 다름 없이 무역의존도가 큰 한국에서 서비스로 세계 시장에 우뚝선 이씨플라자, 과연 올해에는 또 어떤 모습으로 고객의 감탄을 자아낼지 궁굼합니다.

리바리바일보 리버