문자열 변환용 코드 페이지 설정

코드 페이지는 문자, 숫자, 구두점 문자같은 기호를 문자 번호에 매핑하기 위해 운영 체제가 사용하는 내부 표입니다. 다른 언어에서 사용하는 문자 집합을 지원하기 위해 각기 다른 코드 페이지를 사용합니다. 코드 페이지는 번호로 참조합니다. 예를 들어 코드 페이지 949는 한국어 문자 집합을 나타내고 코드 페이지 950은 중국어 문자 집합들 중 하나를 나타냅니다.

ASP와 ASP가 지원하는 스크립트 엔진은 내부적으로 16비트 고정 폭 문자 인코딩 표준인 유니코드를 사용합니다. 모든 페이지를 웹 서버의 기본 코드 페이지로 작성하면 ASP는 자동으로 문자열을 변환합니다. 웹 서버 기본 코드 페이지나 브라우저 기본 코드 페이지에 대해 스크립트를 만들지 않은 경우, 다음 시나리오에서 전달될 때 문자열이 제대로 변환되도록 하려면 코드 페이지를 지정해야 합니다.

ASP 페이지에 대한 코드 페이지를 지정하려면, AspCodePage 메타베이스 속성, @CODEPAGE 지시어, Session.CodePage 속성 또는 Response.CodePage 속성을 사용합니다. 예를 들어, 코드 페이지를 한국어로 설정하려면 다음 명령 중 하나를 사용하여 응용 프로그램에 대한 AspCodePage 속성을 949로 설정합니다.

<%@ CODEPAGE = 949 %>

<% Session.CodePage = 949 %>

<% Response.CodePage = 949 %>

ASP page는 @CodePage 지시어와 일치하는 파일 형식에 저장해야만 합니다. 예를 들어, @CodePage를 65001로 설정하면 웹 페이지를 UTF-8 형식으로 저장해야 합니다. @CodePage를 949로 설정하면, 기본 시스템 로케일이 한국어로 설정된 컴퓨터에서는 웹 페이지를 ANSI 형식으로 저장해야 합니다.

ASP는 이 페이지에 있는 컨텐트와 스크립트를 처리할 때 사용자가 지정한 코드 페이지를 사용하여 사용자의 스크립트 문자 집합을 유니코드로 변환합니다. 예를 들어, ANSI에서 글자 "a"를 참조하는 값은 유니코드에서 글자 "a" 글자를 참조하는 다른 값으로 변환됩니다.

스크립트를 실행할 때 Response.CodePage는 문자를 인코드할 방법을 결정합니다. Response.CodePage가 웹 페이지에 명시적으로 설정되어 있지 않은 경우, Response.CodePage는 이 계층 구조에 암시적으로 설정됩니다.

웹 페이지에 코드 페이지가 한 개만 있을 수도 있습니다. @CodePage와 다른 메서드를 사용하는 경우, 같은 코드 페이지로 설정하거나 두 개 중 하나는 UTF-8로 설정해야 합니다. @CodePage는 리터럴 문자열에 영향을 주고 다른 메서드는 문자열 변수에 영향을 줍니다. 따라서 호환되지 않는 두 코드 페이지가 혼합되어 있으면 브라우저는 리터럴 문자열을 제대로 표시하지 못합니다.

ASP에서 브라우저로 웹 페이지를 보낼 때 브라우저는 페이지를 올바르게 표시하기 위해 사용할 문자를 알아야 하고, 해당 문자 집합에 대한 언어 팩이 컴퓨터에 설치되어 있어야 합니다. 문자 집합을 지정하려면 다음 명령 중 하나를 사용하십시오.

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=windows-1251">
<% Response.Charset = "windows-1252"

스크립트의 한 부분에 대한 코드 페이지를 일시적으로 변경하는 경우, 코드 페이지를 원래 값으로 다시 설정해 놓아야 합니다. 다음 스크립트는 코드 페이지를 일시적으로 변경하는 한 방법을 보여 줍니다.

<%@ CodePage = 65001 %>
<!-- Welcome to my home page in UTF-8 -->
<%
  Response.Write "The Session codepage is " & Session.CodePage & "<BR>"
  Response.CodePage = 949
  Response.Write "The codepage for this page has been changed with Response.CodePage<BR>"
  Response.Write "The Response codepage is " & Response.CodePage & "<BR>"
  Response.Write "The Session codepage is still " & Session.CodePage & "<BR>"
%>

자세한 내용과 예제는 AspCodePage, @CodePage, Session.CodePage, Response.CodePage 및 Response.Charset에 대한 설명서를 참조하십시오.


© 1997-2001 Microsoft Corporation. All rights reserved.