CodePage

CodePage 속성은 내부 개체에서 문자열이 인코딩되는 방법을 지정합니다. 코드 페이지는 숫자, 구두점, 기타 그림 문자 등을 포함하는 문자 집합입니다. 코드 페이지는 각 언어마다 다릅니다. 한국어나 일본어 같은 일부 언어는 2바이트 문자를 가지는 반면에 영어나 독일어 같은 언어는 각 문자를 나타내는 데 1바이트만 필요합니다. CodePage 속성은 읽기/쓰기가 가능합니다.

구문

Response.CodePage [= CodePageID ]

매개 변수

CodePageID

코드 페이지의 서식을 지정하는 문자를 나타내는 정수입니다. 코드 페이지 정수에 대한 내용은 FamilyCodePage 열 아래에 있는 MSDN Web Workshop을 참조하십시오.

참고

Response.CodePage를 설정하면 세션의 모든 응답에 Session.CodePage가 반영되는 단일 페이지에 명시적으로 영향을 줍니다.

페이지에 Response.CodePage가 명시적으로 설정되어 있지 않은 경우, 세션을 사용할 수 있으면 Response.CodePage는 Session.CodePage에 의해 암시적으로 설정됩니다. 세션을 사용할 수 없는 경우, 해당 페이지에 @CodePage가 있으면 Response.CodePage는 @CodePage에 의해 설정됩니다. 해당 페이지에 @CodePage가 없는 경우, Response.CodePage는 AspCodePage 메타베이스 속성에 의해 설정됩니다. AspCodePage 메타베이스 속성이 설정되어 있지 않거나 0으로 설정된 경우, Response.CodePage는 시스템 ANSI 코드 페이지에 의해 설정됩니다.

응답 본문마다 하나의 코드 페이지만 사용해야 합니다. 그렇지 않으면 잘못된 문자가 표시됩니다. 한 페이지가 #include, Server.Execute 또는 Server.Transfer 등이 있는 다른 페이지에 의해 호출되는 두 페이지에 코드 페이지를 명시적으로 설정한 경우, 대개 상위 페이지에 의해 코드 페이지가 결정됩니다. 유일한 예외 사항은 Server.Execute 호출의 상위 페이지에 Response.CodePage가 명백히 설정되었는지의 여부에 따라 발생합니다. 이런 경우 하위 페이지의 @CodePage 명령은 상위 코드 페이지를 무시합니다.

스크립트에 있는 리터럴 문자열은 @CodePage(있는 경우), AspCodePage 메타베이스 값(설정된 경우) 또는 시스템 ANSI 코드 페이지를 사용하여 인코딩됩니다. 클라이언트에 리터럴이 아닌 문자열을 보내기 전에 Response.CodePage나 Session.CodePage를 명시적으로 설정해야 합니다. 같은 페이지에 리터럴 문자열과 리터럴이 아닌 문자열을 사용하는 경우, @CodePage의 코드 페이지가 Response.CodePage의 코드 페이지와 일치하는지 확인합니다. 또는 리터럴 문자열이 리터럴이 아닌 문자열과 다르게 인코딩되거나 올바르게 표시되는지를 확인합니다.

웹 페이지의 코드 페이지가 웹 클라이언트의 시스템 기본 페이지와 일치하면 웹 페이지에서 코드 페이지를 설정할 필요가 없습니다. 그러나, 값 설정을 권장합니다.

코드 페이지를 페이지에 설정하면 Response.Charset도 설정해야 합니다. IIS는 응답 메시지를 작성할 때 코드 페이지 값으로 인코딩하는 방법을 결정하며, 브라우저는 응답 메시지를 표시할 때 문자 집합 값으로 디코딩하는 방법을 결정합니다. Response.Charset의 CharsetName은 반드시 코드 페이지 값과 일치해야 합니다. 그렇지 않으면 혼합된 문자가 브라우저에 표시됩니다. CharsetNames의 목록과 일치하는 코드 페이지 값에 대한 내용은 Preferred Charset Label 및 FamilyCodePage 열 아래 있는 MSDN 웹 사이트를 참조하십시오.

웹 페이지의 파일 형식은 해당 페이지에 사용된 @CodePage와 같아야 합니다. Notepad.exe를 사용하여 파일을 UTF-8 형식 또는 시스템 ANSI 형식으로 저장할 수 있습니다. 예를 들어, @CodePage가 UTF-8을 나타내는 65001로 설정된 경우 웹 파일은 반드시 UTF-8 형식으로 저장됩니다. @CodePage가 영어나 독일어를 나타내는 1252로 설정된 경우, 웹 파일은 영어나 독일어 시스템에 대해 반드시 ANSI 형식으로 저장됩니다. 시스템 언어와 다른 언어에 대해 ANSI 형식으로 페이지를 저장하려면 제어판의 국가별 옵션에서 기본 시스템 로케일을 변경할 수 있습니다. 예를 들어, 시스템 로케일을 일본어로 변경하면 ANSI 형식으로 저장한 모든 파일은 일본어로 저장되고 일본어 시스템 로케일에서만 이 파일을 읽을 수 있습니다.

예를 들어, 다중 언어 웹 사이트를 만들기 위해 다른 로케일, 코드 페이지, 문자 집합을 사용하여 웹 페이지를 만들어 테스트하려면 반드시 표시하려는 각 언어에 대한 언어 팩을 테스트 클라이언트에 설치해야 합니다. 제어판의 국가별 옵션에서 언어 팩을 설치할 수 있습니다.

예제

다음은 다중 언어 사이트의 홈 페이지를 보여주는 예제입니다. 홈 페이지는 UTF-8 형식으로 저장되므로 모든 언어의 문자를 볼 수 있습니다. 홈 페이지는 클라이언트의 언어를 인식하는 ServerVariable HTTP_ACCEPT_LANGUAGE를 사용하여 클라이언트를 해당 언어 페이지로 리디렉션합니다.

--- Default.asp ---

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

<% 
' Default.asp
' This file is saved in UTF-8 format.
' The codepage of the system doesn't matter because
' you are setting @CodePage, Response.CodePage, and Response.Charset.
' Otherwise, the system codepage of the server would be the default.

Response.CodePage = 65001
Response.CharSet = "utf-8"

' Redirect to the correct home page based on the client language.
Select Case Request.ServerVariables("HTTP_ACCEPT_LANGUAGE")

  Case "en-us", "en", "fr", "fr-fr", "es", "es-es", "zh", "zh-cn", "zh-tw"
    Response.Redirect Request.ServerVariables("HTTP_ACCEPT_LANGUAGE") & "Start.asp"

  Case Else
    %>
    Welcome.  Click <a href="enStart.asp">here</a> to go to the English Web site.<BR><BR>
    Bienvenue. Cliquetez <a href="frStart.asp">ici</a> pour aller au Web site francais.<BR><BR>
    Recepcion. Haga clic <a href="esStart.asp">aqui</a> para ir al Web site espanol.<BR><BR>
    [Chinese characters with a link]<BR><BR>
    [Chinese - Taiwan characters with a link]<BR><BR>
    <%

End Select
%>

--- En-usStart.asp ---

<%@ Language="VBScript" %>
<% Response.Redirect "enStart.asp" %>

--- EnStart.asp ---

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

<% 
' enStart.asp
' This file is saved in ANSI format on US English system locale.
' The language of the system doesn't matter
'  because you are setting @CodePage and Response.CodePage.
' Otherwise, the system codepage of the server would be the default.

Response.CodePage = 1252
Response.CharSet = "windows-1252" 

Response.Write "<H1 align=center>News for Today</H1>"
%>

You can insert more content here, possibly using the <BR>
IIS Content Linking component, the <BR>
IIS Content Rotator component, or the <BR>
IIS Ad Rotator component.<BR>

적용

Response 개체

관련 항목

Charset, 국제 클라이언트 수용


© 1997-2001 Microsoft Corporation. All rights reserved.