Серия лекций ASP (двадцать две) Использование международных сайтов
Автор:Eve Cole
Время обновления:2009-05-30 19:58:30
Одним из преимуществ публикации сообщений в Интернете или интрасети является то, что вы можете создать международный веб-сайт, к которому смогут получить доступ пользователи из разных стран (регионов). Пользователи могут подать заявку на веб-страницы, локализованные на местный язык, и читать их с помощью локализованной версии браузера. При создании веб-сайта, содержащего веб-страницы на нескольких языках, вам необходимо преобразовать строки, передаваемые между браузером и веб-сервером или между сценарием ASP и компонентами ActiveX. Например, если японский браузер отправляет значение строки формы или запроса в HTTP-запросе, эту строку необходимо преобразовать из набора японских символов браузера в набор символов, который ASP использует для обработки сценария.
Если все страницы веб-сайта написаны с использованием набора символов по умолчанию, используемого веб-сервером, ASP автоматически выполнит преобразование. Однако если веб-страница написана в другом наборе символов, вам необходимо использовать команды ASP, чтобы указать, как преобразовать строку. Например, если на вашем сайте есть как страницы с набором японских символов, так и страницы с набором китайских символов, необходимо указать набор символов, который ASP использует при обработке конкретной страницы.
ASP также предоставляет команды, которые поддерживают культурные традиции в разных регионах, такие как форматы валюты, времени и даты. Как и в случае с командой преобразования строк, используйте команду локали, если ваш сценарий не использует локаль веб-сервера по умолчанию.
Настройка кодовой страницы преобразования строк Кодовая страница — это внутренняя таблица, которую операционная система использует для сопоставления символов (букв, цифр и знаков препинания) с числами символов. Различные кодовые страницы поддерживают наборы символов, используемые в разных странах (регионах). Кодовые страницы обозначаются числами; например, кодовая страница 932 представляет набор символов японского языка, а кодовая страница 950 представляет набор символов традиционного китайского языка.
Страницы Active Server и механизм сценариев ActiveX внутри используют Unicode, 16-битный стандарт кодировки символов фиксированной длины. Если вы напишете все страницы, использующие кодовую страницу веб-сервера по умолчанию, ASP автоматически преобразует строки. Если ваш сценарий не использует кодовую страницу веб-сервера по умолчанию, вам следует указать используемую кодовую страницу, чтобы строки конвертировались правильно при передаче между ASP и обработчиком сценариев. Кроме того, вы можете указать кодовую страницу для строк, передаваемых между браузером и сценарием или между компонентами ActiveX и сценарием.
Чтобы указать кодовую страницу для страницы ASP, используйте директиву CODEPAGE. Например, чтобы установить японскую кодовую страницу, используйте следующую команду:
<%@ КОДОВАЯ СТРАНИЦА= 932 %>
Когда ASP обрабатывает содержимое и сценарии этой страницы, он использует указанную вами кодовую страницу, чтобы определить, как преобразовать символы сценария из набора символов вашего сценария в Юникод. Например, значение, представляющее букву «а» в ANSI, будет преобразовано в другое значение, представляющее букву «а» в Юникоде.
Active Server Pages предполагает, что кодовая страница строк, передаваемых между сервером и браузером или между сценарием и компонентом ActiveX, совпадает с кодовой страницей, заданной вами для сценария. Чтобы указать другую кодовую страницу, вы можете переопределить параметр CODEPAGE, задав свойство Session.CodePage. Например, вы пишете сценарии с использованием JIS, но отвечаете клиентам, использующим UTF-8 (JIS и UTF-8 — это две разные кодировки стандартного японского набора символов).
По умолчанию для Session.CodePage установлено значение директивы CODEPAGE; установка этого свойства переопределит текущую настройку CODEPAGE; Например, чтобы изменить кодовую страницу на традиционный китайский, используйте следующую команду:
<% Session.CodePage = 950 %>
Если вы лишь временно меняете кодовую страницу части скрипта, обязательно после этого установите для Session.CodePage исходное значение. Следующий скрипт показывает, как временно изменить кодовую страницу:
<!-- Добро пожаловать на мою домашнюю страницу на японском языке, кодовая страница 932 --!>
<%@Кодовая страница = 932 %>
...
<% Session("OriginalCodePage") = Session.CodePage %>
<!-- Найти имя на китайском языке, кодовая страница 950 --!>
<% Session.CodePage = 950 %>
<% Отправитель = ReadMailHeader("Отправитель") %>
<% Найдено = НайтиДруг("Отправитель") %>
<!-- Восстановить исходную кодовую страницу --!>
<% Session.CodePage = Session("ИсходнаяКодоваяСтраница") %>
<% Если найдено == ИСТИНА
Ответить с персонализированной формой()
еще
Ответить с бизнес-формой()
%>
Настройка сайта идентификации сайта представляет собой набор информации о предпочтениях пользователя, связанной с языком пользователя. Определите на месте, как форматировать дату и время, элементы, как сортировать по алфавиту и как сравнивать строки; Идентификация сайта (LCID) — это 32-битное значение, которое однозначно определяет сайт. Если вы не укажете другую локаль для сценария, ASP будет использовать локаль веб-сервера по умолчанию.
Чтобы установить идентификацию контекста для страницы ASP, используйте директиву LCID. Например, чтобы настроить японский сайт, используйте следующий идентификатор сайта:
<%@LCID = 1041 %>
Директива LCID сообщает ASP локаль, в которой следует писать сценарий. Если вы хотите изменить контекст ввода или вывода сценария, используйте свойство Session.LCID. Например, чтобы установить стандартный французский язык, используйте следующую команду:
<% Session.LCID = 1036 %>
Настройка по умолчанию для Session.LCID — это настройка директивы LCID. Установка значения Session.LCID в скрипте переопределит настройку по умолчанию.