결론>
Server.UrlEncode(문자열) 는 HttpUtility.UrlEncode(문자열, Response.ContentEncoding)
과 같습니다.
지식 획득 경로>
asp에서 작성한 쿠키를 asp.net에서 쓰려고 하는데 값이 서로 다르게 나와서 서핑하다가 찾은 것이
데브피아에서 남승우 님의
도움을 받아
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 이라는 것도 있군요 ^^
'.net' 카테고리의 다른 글
Microsoft MSDN 무료 기술 서적 (0) | 2010.05.24 |
---|---|
페이지내 컨트롤 데이터를 QueryString으로 가져오는 코드 (0) | 2010.05.20 |
Rolling back Visual Studio 2008 projects to Visual Studio 2005 (1) | 2009.11.20 |
Free Web DHTML Editor - FCKEditor 정리 (2) | 2008.05.16 |
Excel Reports in ASP.NET 2.0 (1) | 2008.04.18 |