@LCID 지시어는 날짜, 시간, 통화 단위를 어떤 유형으로 설정할지를 지정합니다. LCID는 각 지역 로케일마다 다릅니다. 일부 로케일은 날짜를 YY-MM-DD 형식으로 표시하며 일부는 MM-DD-YYYY로 표시합니다. @LCID 지시어는 쓰기 전용입니다.
LCID는 첫 단어(lower word)에는 언어 식별자를 포함하고 두 번째 단어(upper word)에는 예약 값을 포함하는 DWORD입니다. LCID에 제공된 식별자는 국제 표준 수치 약어입니다. 이 LCID는 설치된 시스템 정의 로케일 중 하나를 식별하는 데 필요한 구성 요소를 갖고 있습니다. 미리 정의된 LCID 값은 두 개입니다. LOCALE_SYSTEM_DEFAULT는 시스템 기본 로케일이고 LOCALE_USER_DEFAULT는 현재 사용자의 로케일입니다.
<%@ LCID=localeidentifier %>
@LCID를 명시적으로 설정하면 단일 응답의 리터럴(정적) 문자열에 영향을 미칩니다. Response.LCID는 단일 응답의 동적 문자열에 영항을 미치고 Session.LCID는 세션에 있는 모든 응답의 동적 문자열에 영향을 미칩니다.
@LCID가 페이지에 명시적으로 설정되어 있지 않으면 AspLCID 메타베이스 속성이나 기본 시스템 로케일에 의해 암시적으로 설정됩니다.
서식이 적용된 결과를 표시하기 전에 Response.LCID 또는 Session.LCID를 명시적으로 설정해야 합니다. 같은 페이지에 리터럴이나 리터럴이 아닌 출력을 사용하려면 @LCID가 Response.LCID의 로케일과 일치하는지 확인해야 합니다. 그렇지 않으면 리터럴 출력이 리터럴이 아닌 출력과 다르게 나타납니다.
@LCID 설정은 ASP 응용 프로그램과 스크립팅 엔진에 대한 로케일을 변경합니다. VBScript 함수 setLocale()을 사용하면 스크립팅 엔진에 대한 로케일만 변경합니다.
웹 페이지의 로케일이 웹 클라이언트의 시스템 기본 로케일과 일치하면 웹 페이지에서 로케일을 설정할 필요가 없습니다. 그러나, 값 설정을 권장합니다.
로케일을 페이지에 설정하고 각 문자를 올바르게 보여주기 위해 코드 페이지를 설정하고 나면, 반드시 Response.Charset을 설정해야 합니다. IIS는 응답 메시지를 작성할 때 코드 페이지 값으로 인코딩하는 방법을 결정하며, 브라우저는 응답 메시지를 표시할 때 문자 집합 값으로 디코딩하는 방법을 결정합니다. Response.Charset의 CharsetName은 반드시 코드 페이지 값과 일치해야 합니다. 그렇지 않으면 혼합된 문자가 브라우저에 표시됩니다. CharsetNames의 목록과 코드 페이지 값 일치에 대한 내용은 MSDN Web Workshop의 Preferred Charset Label 및 FamilyCodePage에서 찾을 수 있습니다.
예를 들어, 다중 언어 웹 사이트를 만들기 위해 다른 로케일, 코드 페이지, 문자 집합을 사용하여 웹 페이지를 만들어 테스트하려면 반드시 표시하려는 각 언어에 대한 언어 팩을 테스트 클라이언트에 설치해야 합니다. 제어판의 국가별 옵션에서 언어 팩을 설치할 수 있습니다.
다음은 @LCID를 먼저 러시아어로 설정한 다음 한국어로 변경하는 예제입니다.
--- LCID.asp ---
<%@ LCID=1049 %>
<%
' This file doesn't need to be saved in UTF-8 format because
' there are no literal strings that need formatting or encoding.
Response.Codepage = 65001
Response.Charset = "utf-8"
' The LCID is already 1049
Response.Write "<B>Russia</B><BR>"
Response.Write FormatDateTime("17/01/2001", 1) & "<BR>"
Response.Write FormatDateTime("17:41:35", 3) & "<BR>"
Response.Write FormatCurrency(1000) & "<BR>"
Response.Write FormatNumber(50, 3, 0, 0, -1) & " & " & FormatNumber(.02, 3, 0, 0, -1) & "<BR><BR>"
' Now change the LCID to Korea
Response.LCID = 1042
Response.Write "<B>Korea</B><BR>"
Response.Write FormatDateTime(Date, 1) & "<BR>"
Response.Write FormatDateTime(Time, 3) & "<BR>"
Response.Write FormatCurrency(1000) & "<BR>"
Response.Write FormatNumber(50, 3, 0, 0, -1) & " & " & FormatNumber(.02, 3, 0, 0, -1) & "<BR><BR>"
%>
Session.LCID, Response.LCID, 국제 클라이언트 수용