[This is preliminary documentation and subject to change]

## @LCID

The @LCID directive specifies how dates, times, and currencies are formatted. LCIDs are not the same for each geographical locale. Some locales format dates as YY-MM-DD and some format dates as MM-DD-YYYY. The @LCID directive is write only.

The LCID is a DWORD containing the language identifier in the lower word and a reserved value in the upper word. The identifier supplied in an LCID is a standard international numeric abbreviation. This LCID has the components necessary to uniquely identify one of the installed system-defined locales. There are two predefined LCID values. LOCALE_SYSTEM_DEFAULT is the system default locale, and LOCALE_USER_DEFAULT is the current user's locale.

###### Syntax

<%@ LCID = localeidentifier %>

###### Notes

Setting @LCID explicitly affects literal (static) strings in a single response. Response.LCID affects dynamic strings in a single response, and Session.LCID affects dynamic strings in all responses in a session.

If @LCID is not explicitly set in a page, it is implicitly set by the AspLCID metabase property, or by the default system locale.

If you set Response.LCID or Session.LCID explicitly, do so before displaying formatted output. If you use literal and non-literal output in the same page, make sure the locale of @LCID matches the locale of Response.LCID, or the literal output is formatted differently from the non-literal output.

Setting @LCID changes the locale for both the ASP application and the scripting engine. Using the VBScript function setLocale() only changes the locale for the scripting engine.

If the locale of your Web page matches the system defaults of the Web client, you do not need to set a locale in your Web page. However, setting the value is recommended.

If the locale is set in a page, and the codepage is set to display the characters properly, then Response.Charset should also be set. The codepage value tells IIS how to encode the data when building the response, and the charset value tells the browser how to decode the data when displaying the response. The CharsetName of Response.Charset must match the codepage value, or mixed characters will be displayed in the browser. Lists of CharsetNames and matching codepage values can be found at MSDN Web Workshop under the columns for Preferred Charset Label and FamilyCodePage.

If you are writing and testing Web pages that use different locales, codepages, and character sets (for example, creating a multi-lingual Web site), remember that your test client computer must have the language packs installed for each language you wish to display. You can install language packs from Regional Options in the Control Panel.

###### Parameters

localeidentifier
  A valid locale identifier.

###### Example

This page starts off by setting @LCID to Russia, then changes it to Korea.

--- 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>"
    %>

###### See Also

LCID, LCID, Accommodating International Clients

© 1997-2001 Microsoft Corporation. All rights reserved.