http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=8&MAEULNo=5&no=544

결론>

 

Server.UrlEncode(문자열) 는 HttpUtility.UrlEncode(문자열, Response.ContentEncoding)
과 같습니다.

 

 

지식 획득 경로>

 

asp에서 작성한 쿠키를 asp.net에서 쓰려고 하는데 값이 서로 다르게 나와서 서핑하다가 찾은 것이

 

데브피아에서 남승우 님의

http://www.devpia.com/Forum/BoardView.aspx?no=39243&page=3&Tpage=10&forumname=aspnet_qa&stype=&ctType=&answer=&KeyR=title&KeyC=

도움을 받아

ASP.NET이 기본적으로 쿠키를 UrlEncode 형식으로 인코딩하지 않는다. (http://support.microsoft.com/default.aspx?scid=kb;ko;313282)

라는 1차 지식을 얻었습니다.

 

그래서 HttpUtility.UrlDecode() 메소드를 이용 쿠키값을 가져왔으나 유독 한글이 안나오거나 깨져 나와서

구글에서 'httputility.urlencode server.urlencode'라는 단어로 검색해서

http://www.dotnet247.com/247reference/msgs/39/196310.aspx 를 참조해서 아래와 같이 테스트 해보았습니다.

 

test.asp

 

<%

    Response.Write Server.UrlEncode("관리자")                     -> %b0%fc%b8%ae%c0%da

%>

 

test.aspx

 

<%

    Response.Write(Server.UrlEncode("관리자"));                    -> %b0%fc%b8%ae%c0%da
    Response.Write("<br/>");

    Response.Write(HttpUtility.UrlEncode("관리자"));                 -> %ea%b4%80%eb%a6%ac%ec%9e%90

    Response.Write("<br/>");

   Response.Write(HttpUtility.UrlEncode("관리자",

        System.Text.Encoding.GetEncoding("euc-kr")));            ->%b0%fc%b8%ae%c0%da

%>

 







이 문제 또한 문자셋과 관련이 있는데요.
web.config의 요청, 응답이 기본으로 utf-8 로 되어있는 상태이고 수정할 필요가 없습니다.

소스가 포함된 문서도 마찬가지고요. 다만 vs.net 편집기로 작성한 경우가 아니라면
저장할때 utf-8로 저장해야 합니다.
또한 이 경우엔 html 메타태그에 문자셋을 지정할 필요가 없으며 브라우져는 인코딩을
자동으로 인식하여 입출력에 아무런 문제가 발생하지 않습니다.



Response.ContentEncoding 이라는 것도 있군요 ^^




+ Recent posts