ASP-Vorlesungsreihe (22) unter Verwendung internationaler Websites
Autor:Eve Cole
Aktualisierungszeit:2009-05-30 19:58:30
Ein Vorteil der Veröffentlichung von Nachrichten im Internet oder Intranet besteht darin, dass Sie eine internationale Website erstellen können, auf die Benutzer aus verschiedenen Ländern (Regionen) zugreifen können. Benutzer können Webseiten beantragen, die in die Landessprache lokalisiert wurden, und diese mit der lokalisierten Version des Browsers lesen. Wenn Sie eine Website erstellen, die Webseiten in mehreren Sprachen enthält, müssen Sie Zeichenfolgen konvertieren, die zwischen dem Browser und dem Webserver oder zwischen dem ASP-Skript und ActiveX-Komponenten übergeben werden. Wenn beispielsweise ein japanischer Browser in einer HTTP-Anfrage einen Formular- oder Abfragezeichenfolgenwert sendet, muss diese Zeichenfolge vom japanischen Zeichensatz des Browsers in den Zeichensatz konvertiert werden, den ASP zum Verarbeiten des Skripts verwendet.
Wenn alle Seiten der Website im vom Webserver verwendeten Standardzeichensatz geschrieben sind, führt ASP die Konvertierung automatisch durch. Wenn die Webseite jedoch in einem anderen Zeichensatz geschrieben ist, müssen Sie ASP-Befehle verwenden, um anzugeben, wie die Zeichenfolge konvertiert werden soll. Wenn Ihre Site beispielsweise sowohl japanische als auch chinesische Zeichensatzseiten enthält, müssen Sie den Zeichensatz angeben, den ASP bei der Verarbeitung einer bestimmten Seite verwendet.
ASP bietet außerdem Befehle, die kulturelle Konventionen in verschiedenen Regionen unterstützen, z. B. Währungs-, Zeit- und Datumsformate. Verwenden Sie wie beim Befehl zur Zeichenfolgenkonvertierung den Befehl „locale“, wenn Ihr Skript nicht das Standardgebietsschema des Webservers verwendet.
Festlegen der Codepage für die Zeichenfolgenkonvertierung Eine Codepage ist eine interne Tabelle, die das Betriebssystem verwendet, um Symbole (Buchstaben, Zahlen und Satzzeichen) in Zeichennummern abzubilden. Verschiedene Codepages unterstützen Zeichensätze, die von verschiedenen Ländern (Regionen) verwendet werden. Codepages werden durch Zahlen referenziert; Codepage 932 steht beispielsweise für den japanischen Zeichensatz und Codepage 950 für den traditionellen chinesischen Zeichensatz.
Active Server Pages und die ActiveX-Skript-Engine verwenden intern Unicode, einen 16-Bit-Zeichenkodierungsstandard mit fester Länge. Wenn Sie alle Seiten schreiben, die die Standardcodepage des Webservers verwenden, konvertiert ASP die Zeichenfolgen automatisch. Wenn Ihr Skript nicht die Standardcodepage des Webservers verwendet, sollten Sie die verwendete Codepage angeben, damit Zeichenfolgen bei der Übergabe zwischen ASP und der Skript-Engine korrekt konvertiert werden. Darüber hinaus können Sie die Codepage für Zeichenfolgen angeben, die zwischen Browser und Skript oder zwischen ActiveX-Komponenten und Skript übergeben werden.
Um eine Codepage für eine ASP-Seite anzugeben, verwenden Sie die CODEPAGE-Direktive. Um beispielsweise die japanische Codepage festzulegen, verwenden Sie den folgenden Befehl:
<%@ CODEPAGE= 932 %>
Wenn ASP den Inhalt und die Skripte dieser Seite verarbeitet, verwendet es die von Ihnen angegebene Codepage, um zu bestimmen, wie die Zeichen im Skript vom Zeichensatz Ihres Skripts in Unicode konvertiert werden. Beispielsweise wird ein Wert, der den Buchstaben „a“ in ANSI darstellt, in einen anderen Wert umgewandelt, der den Buchstaben „a“ in Unicode darstellt.
Active Server Pages geht davon aus, dass die Codepage der zwischen dem Server und dem Browser oder zwischen einem Skript und einer ActiveX-Komponente übergebenen Zeichenfolgen mit der Codepage übereinstimmt, die Sie für das Skript festgelegt haben. Um eine andere Codepage anzugeben, können Sie die CODEPAGE-Einstellung überschreiben, indem Sie die Session.CodePage-Eigenschaft festlegen. Sie schreiben beispielsweise Skripte mit JIS, antworten aber auf Clients, die UTF-8 verwenden (JIS und UTF-8 sind zwei unterschiedliche Zeichenkodierungen des japanischen Standardzeichensatzes).
Session.CodePage ist standardmäßig auf den Wert der CODEPAGE-Direktive eingestellt; das Festlegen dieser Eigenschaft überschreibt die aktuelle CODEPAGE-Einstellung. Um beispielsweise die Codepage in traditionelles Chinesisch zu ändern, verwenden Sie den folgenden Befehl:
<% Session.CodePage = 950 %>
Wenn Sie die Codepage eines Teils des Skripts nur vorübergehend ändern, stellen Sie sicher, dass Session.CodePage anschließend auf den ursprünglichen Wert gesetzt wird. Das folgende Skript zeigt, wie Sie die Codepage vorübergehend ändern:
<!-- Willkommen auf meiner Homepage auf Japanisch, Codepage 932 --!>
<%@ CodePage = 932 %>
...
<% Session("OriginalCodePage") = Session.CodePage %>
<!-- Nach Namen auf Chinesisch suchen, Codepage 950 --!>
<% Session.CodePage = 950 %>
<% Sender = ReadMailHeader("Sender") %>
<% Found = FindFriend("Sender") %>
<!-- Stellen Sie die ursprüngliche Codepage wieder her --!>
<% Session.CodePage = Session("OriginalCodePage") %>
<% Wenn gefunden == TRUE
ReplyWithPersonalizedForm()
anders
ReplyWithBusinessForm()
%>
Beim Festlegen der Site-Identifikation handelt es sich um eine Reihe von Benutzerpräferenzinformationen, die sich auf die Sprache des Benutzers beziehen. Bestimmen Sie vor Ort, wie Datums- und Uhrzeitangaben formatiert werden, wie Elemente alphabetisch sortiert werden und wie Zeichenfolgen verglichen werden. Die Site Identification (LCID) ist ein 32-Bit-Wert, der eine Site eindeutig definiert. Wenn Sie für das Skript kein anderes Gebietsschema angeben, verwendet ASP das Standardgebietsschema des Webservers.
Um die Kontextidentifikation für eine ASP-Seite festzulegen, verwenden Sie die LCID-Direktive. Um beispielsweise eine japanische Site einzurichten, verwenden Sie die folgende Site-ID:
<%@LCID = 1041 %>
Die LCID-Direktive teilt ASP das Gebietsschema mit, in dem das Skript geschrieben werden soll. Wenn Sie den Eingabe- oder Ausgabekontext eines Skripts ändern möchten, verwenden Sie die Eigenschaft Session.LCID. Um beispielsweise das Gebietsschema auf Standard-Französisch festzulegen, verwenden Sie den folgenden Befehl:
<% Session.LCID = 1036 %>
Die Standardeinstellung für Session.LCID ist die Einstellung der LCID-Direktive. Durch Festlegen des Werts von Session.LCID in einem Skript wird die Standardeinstellung überschrieben.