Globalisierungsprobleme ASP und ASP.NET


ASP.NET Support Voice-Kolumne


Diese Spalte an Ihre Bedürfnisse anpassen, wir laden Sie Ihre Ideen zu Themen, die Sie interessieren und, die gewünschten Fragen in zukünftigen Knowledge Base-Artikeln und Support Voice-Spalten. Mithilfe des Formulars Für diese Fragen können Sie Ihre Ideen und ihr Feedback senden. Außerdem wird ein Link zu diesem Formular am Ende dieser Kolumne.

Einführung


Willkommen! Dies ist Sukesh Khare mit Microsoft ASP.NET Developer Support-Team. Dies ist das erste Mal ich Support Voice-Kolumne erstellt haben. Ich freue mich mehr Spalten in den kommenden Monaten erstellen.

Dieses Monats werde ich diskutieren Globalisierung in Active Server Pages (ASP) und ASP.NET, Probleme, die bei ASP, wie Dinge in ASP.NET 1 X geändert haben und was mit ASP.NET 2.0 vor Globalisierung ist.

Hinweis Stoßen Sie auf einen Begriff nicht verstehen, finden Sie im Abschnitt Glossar am Ende dieser Kolumne.

Globalisierungsprobleme in ASP

Bevor ASP.NET wurde keine strukturierte Unterstützung für die Entwicklung von Clientanwendungen für globale Benutzer. Während der frühen Entwicklung von ASP verstreut wie mich Entwickler nur Unterstützung für die Globalisierung in Betriebssystemen, Browsern, ASPs und Backend-Systemen. Allerdings wir selten automatische Verbindung über diese Anträge. Glücklicherweise wir verstehen Konzepte wie Zeichensätze, Codepages, Browser-Sprachen und Schriftarten, die für die Entwicklung von Clientanwendungen für globale Benutzer genutzt werden können.

Es wäre leicht separate Kategorien die Globalisierung aller Probleme in ASP.NET gesehen haben. Stattdessen werde ich eine Reihe von Konzepten Liste, die an diese Probleme beziehen.

Zeichensätze und codepages

Wir wissen alle, dass die Zeichen auf unserem Bildschirm nur eine Reihe von Bytes. Die Byte-Serie werden erstellt und Weise interpretiert. Nutzt die Interpretation einer Codierung unterscheidet sich die Codierung, das Bytearray mit erstellt wurde, zeigt die Interpretation Müll. Zeichensätze (Zeichensätze) werden Formate Codierung, die normalerweise von Browsern verwendet werden. Die serverseitige Konvertierung mehr für Eigenschaft Codepage ist nur eine Tabelle, die angibt, wie Zeichen codiert werden.

Browser codiert Post Formulardaten nach den aktuellen Zeichensatz. Ist der aktuelle Zeichensatz "Windows 1256," Byte Übertragung an den Server auch als "Windows 1256" codiert

Bei ASP interpretiert wird, werden die Form und die Querystring -Auflistung nicht erstellt, bis sie im Code verwiesen werden. Wenn sie erstellt werden, ist die Zeichenfolgendaten nach der aktuellen Codepage in Unicode umgewandelt. (Standardmäßig verarbeiten ASP und ASP.NET Inhalt mithilfe von Unicode-Format). Es ist sehr wichtig, dass die richtige Codepage festgelegt, bevor die Sammlungen verweisen. Andernfalls wird nicht die Unicode-Darstellung im Speicher korrekt sein.

Verwenden Sie zum Festlegen einer Codepage Session.Codepage oder Response.Codepage. Response.Codepage ist nur in Microsoft-Internetinformationsdienste (IIS) 5.1 oder höhere Versionen verfügbar. Informationen über die ganzzahligen Werte (die in den Zeichensatz entsprechen), dass wir diese Eigenschaften auf folgender Website von Microsoft festgelegt werden:Um die Codepage für die arabische Sprache festzulegen, z. B. den folgenden Code:
Session.Codepage = 1256
Response.Codepage wirkt sich nur auf die aktuelle Antwort aus. Allerdings wirkt sich Session.Codepage auf alle Antworten, die vom aktuellen Benutzer aus. Die Codepage mithilfe dieser Eigenschaften festgelegt, die Form und die Querystring -Auflistung erstellt, wird diese Änderung in der aktuellen Codepage Response.Write -Methode Unicode im Speicher in der aktuellen Codepage transformiert. Weitere Informationen zu diesem Thema finden Sie auf der folgenden MSDN-Website:
Festlegen der Codepage für Zeichenfolge konvertieren (ASP)http://msdn2.microsoft.com/en-us/library/ms525789.aspx
Die wirtschaftliche Entwicklung zu Themen Zeichensätze und Codepages ist dieser Client-Zeichensatz und Server Codepage übereinstimmen.

Sprachen akzeptieren

Wenn ASP Entwickler, welche Sprachen ein Benutzer in seinem Browser festgelegt hat, können Entwickler Variable Request.ServerVariables ("HTTP_ACCEPT_LANGUAGE") zu der Liste der Sprachen, die der Benutzer die Antwort in beispielsweise (Englisch, Deutsch oder indischen) lesen möchten und die Reihenfolge, die der Benutzer dieser Sprachen anzeigen möchten. In ASP.NET ist ähnliche Informationen in Request.UserLanguages -Eigenschaft als Array.
Weitere Informationen dazu, wie Sie diese Informationen im ASP-Code verwenden, klicken Sie auf die folgenden Artikelnummer der Microsoft Knowledge Base:
229690 wie ASP Gebietsschemabezeichner pro die Browsersprache

Anzeigen von Multibyte-Zeichen wird in Internet Explorer

Nur Codierungsformat, das zeigen einen Mehrbyte-Zeichensatz ist Unicode (UTF-8). Wir können mit UTF-8, Kyrillisch, indische und japanische anzeigen auf der gleichen Seite. Wenn wir nicht UTF-8 verwenden, können nur eine dieser Sprachen gleichzeitig erfahren. Um den Zeichensatz des Browsers festzulegen, verwenden Sie die Response.CharSet -Eigenschaft.

Statische Multibyte-Zeichen auf einer Seite

Anzeige von Multibyte-Zeichen direkt in der Seite gespeichert, müssen wir zunächst die Seite mit bestimmten Codierung speichern. UTF-8 möglich, aber eine bestimmte Codepage (Codepage Zeichen angepasst) sowie funktioniert.

Speichern einer ASP-Datei mithilfe von Microsoft Visual InterDev helfen nicht, da Visual InterDev nur in Englisch ANSI oder Unicode speichern können. Jede ASP-Seite gespeichert als Unicode ASP nicht unterstützt.

In Microsoft Visual Studio .NET können Sie in einer beliebigen Codierung speichern. Es gibt zwei Methoden zur Verfügung. Der Standardwert ist Weg zum Speichern der Datei mit der aktuellen Codepage für den Benutzer. Eine weitere Möglichkeit zum Speichern einer Datei mit einer Codierung lautet wie folgt:
Klicken Sie im Menü Datei auf Speichern unter. In der
Dialogfeld Speichern unter auf den Dropdown Pfeil auf der
Speichern. Wenn Sie auf den Pfeil klicken, stehen die Optionen
Speichern und mit Codierung speichern. Beim Klicken auf
Mit Codierung speichernim Dialogfeld Erweiterte Speicheroptionen angezeigt, in dem Sie die Art der Codierung auswählen, die aus einer Liste der Codepages anwenden, die auf dem Computer installiert sind.


Hinweis Dies ändert die Codierung speichern Vorgang wird jedoch nur einmal. Nächsten Speichern wird auf den Standardwert zurückgesetzt.

Um die standardmäßige Codepage zu ändern, klicken Sie auf Erweiterte Speicheroptionen auf der
Menü Datei . Im Dialogfeld Erweiterte Speicheroptionen können Sie den Standardzeichensatz für die Codepage Ihrer Wahl Speichervorgänge festlegen.

Diese Methoden beziehen, wie die Datei auf der Festplatte gespeichert wird. Um die Steuerung der Ausgabe für ASP, wie bereits erwähnt, müssen wir jedoch Session.CodePage und die Response.CharSet -Eigenschaft festgelegt. Mit IIS 5.1 und höher können wir auch die Response.CodePage -Eigenschaft verwenden.

Standard-CODEPAGE auf server

Das Standard-Gebietsschema und die Standardcodepage für die Seite hängt die Registrierungseinträge für die. Standardbenutzer. Wir finden internationalen Schlüssel Registrierungsstruktur HKEY_USERS\. DEFAULT\Control Panel\International. Wir können auch das Verhalten des Gebietsschemas ändern, die von IIS ausgewählt ist. Weitere Informationen finden Sie im Abschnitt "IIS 5.0" in der Microsoft Knowledge Base:
306044 Verhalten der Datums-/Uhrzeitformat unterscheidet, wenn über Active Server Pages

Verfügt der angemeldete Benutzer als dem oben aufgeführten Schlüssel oder Systemstandard Gebietsschema wird die Einstellung des Benutzers Vorrang.

Beispiel: Standardgebietsschema hat Datum Format als 11.1.2004 während der angemeldeten Benutzer (mit den gleichen Gebietsschema) Datumsformat 1/11/2004 verfügt. Die Einstellung 1/11/2004 wird für ASP wirksam.

(Für ASP.NET, kann dies variieren. Bei Installationen müssen ASPNET-Benutzer ein eigenes Profil, das unter HKEY_USERS angezeigt wird Wenn es geladen wird. In anderen Fällen verwenden sie die. Standardprofil. Wir können auch das Codepage-Attribut in der Deklaration < % @ % >. Dies sollte verwendet werden, wenn die Datei mit einer anderen Codierung dann standardmäßig wie Codepage 932 (Japanisch)).

Codepage-Probleme und Schriftart Konvertierungsprobleme: das ist?

Manchmal sehen Sie ein Fragezeichen (?) oder ein Feld, in dem ein Zeichen erscheinen soll.
Codepage Konvertierungsprobleme
Wenn ein Zeichen durch ein Fragezeichen (?) ersetzt wird, ist dies eine Angabe, dass eine Codepage Konvertierungsproblem aufgetreten. Das Fragezeichen (?) ist ein Standardzeichensatz Codepage konvertiert und bedeutet, dass das Betriebssystem nicht weiß, dass das Behandeln des Zeichenwert und konvertieren. Den Zeichenwert ersetzt mit einem Fragezeichen (?). Dies bedeutet das Zeichen hat einen ungültigen Wert für die Codepage oder die Codepage, die für die Konvertierung nicht installiert ist.
Konvertierungsprobleme Schriftart
Wenn durch ein Zeichen ersetzt wird, ist dies eine Angabe, dass eine Schriftart Konvertierungsproblem aufgetreten ist. Dies tritt auf der Clientseite der Client nicht die richtige Schriftart installiert dieses Zeichen korrekt angezeigt haben. Wenn ein Zeichen aus japanischen Zeichensatz und der Client verfügt nicht über die Schriftarten für Japanisch installiert, wird japanische Zeichen als Kästchen angezeigt.

Als Nächstes werde ich darüber wie Dinge in ASP.NET 1.x und wie diese Änderungen Globalisierungsprobleme im Kontext von ASP.NET.

Globalisierungsprobleme in ASP.NET 1.x:

Mit ASP.NET wurden drei großes eingeführt:
  • < Globalization >-Tag in der Datei web.config
    Das Tag < Globalization > nimmt uns inkohärente Konzepte von Codepages und Zeichensätze und ermöglicht die meisten Varianten in ASP.NET zu steuern.
  • Der System.Globalization-namespace
    Globalization-Namespace bietet programmgesteuerte Stromversorgung mit Globalisierung.
  • Das Konzept der Ressourcendateien wurde erheblich verbessert.
    Wir behandeln nicht Ressourcendateien wie, die wir in ASP verwendet. Jetzt sind die Ressourcendateien in Form von XML-Dateien, wenn wir entwerfen und entwickeln und Laufzeit assemblieren vorhanden.
Das Konfigurationstag Globalisierung:

Zwei wichtige Einstellungen im Tag lauten wie folgt:
<globalization             requestEncoding="utf-8" 
responseEncoding="utf-8" />
Andere Einstellungen Bereiche gelten:
fileEncodingGibt die Codierung für die ASPX-, ASMX- und asax-Datei analysieren. Unicode und UTF-8-Dateien mit dem Präfix Byte Order Mark (mit Signatur) werden unabhängig vom Wert der FileEncodingautomatisch erkannt werden.
KulturGibt die Standardkultur für die Verarbeitung von eingehender Webanfragen (für Methoden der Klassen von System.Globalization-Namespace).
uiCultureGibt die Standardkultur für die Verarbeitung von Gebietsschema abhängiger Ressourcensuchvorgänge (Satellitenassemblys).
Weitere Informationen zu Kulturzeichenfolgen (Werte von Culture und Uiculture) finden Sie auf der folgenden Microsoft-Website:Dazu werden durch ASP.NET angewendet, nachdem die Antwort bereits abgeschlossen ist und bevor die Anforderung an die Anwendung übergeben wird. Für ResponseEncoding wird der Puffer zum Speichern der Ausgabe erstellt diese Codierung fest. Was in diesem Puffer geht wird entsprechend der Einstellung codiert werden, wie in den Puffer eingefügt wird.

Für RequestEncoding die Laufzeit die Anforderung lesen und interpretieren entsprechend der Einstellung in diesem Abschnitt. Dies ist eine Einstellung, die jedoch zu Problemen führen kann. Die Tabelle zeigt Bit Layout der gültigen UTF-8-Byte-Sequenz.

Fällt der Zeichenwert in der standard-ASCII-7 Bit, wird der Bytewert nicht geändert. Wenn der Wert über 127, muss es folgende Regeln zu beachten. Führende Gruppe von Bits zeigt wie viele Zeichen in der Sequenz. Jedes Byte nach dem ersten mit dem ersten start muss auf 1 gesetzt.

UTF-8-Byte-Layout:
BytesBitsDarstellung
170vvvvvvv
211110vvvvv 10vvvvvv
3161110vvvv 10vvvvvv 10vvvvvv
42111110vvv 10vvvvvv 10vvvvvv 10vvvvvv
Hier kommt das Problem. Wenn der Browser die Anforderung nach einer Einzelbyte-Codierung (z. B. Iso-8859-1) codiert, werden Werte über 127 nicht nach oben Layout gültig. UTF-8-Puffer gelesen werden, werden ungültigen Zeichen aus der Ausgabe einfach gelöscht.

Runtime Codierung ändern

Im Ereignis Application_BeginRequest können wir den Wert RequestEncoding ändern und es wirksam wird, bevor die Anforderung verarbeitet wird. Die Antwort ist das Page_PreRender -Ereignis die letzte Möglichkeit zum Ändern der Codierung für die Ausgabe. Außerdem unbedingt beachten, dass Response.Write Zeichen in diesem Puffer eingefügt, wie wir sie nennen die richtige Codierung verfügen vor Response.Write.

Originaldaten ist nicht Unicode: Multi-Byte-Zeichensätze interpretiert Internet Explorer weiterhin zu?

Wir können auch ASP.NET wie ASP Verhalten nach Bedarf. Dazu auftreten, müssen wir ResponseEncoding und RequestEncoding Windows-1252 (eine vollständigere Codierung als Iso-8859-1) festgelegt, und die Response.Charset Eigenschaft den Text korrekt angezeigt. Dies funktioniert, da Windows-1252 ein Einzelbyte-Codierungsschema ist und ändert alle Bytes im Puffer hinzugefügt werden. Daher werden Doppelbytezeichen als eine Reihe von einzelnen Bytes gesendet. Wir können dann Internet Explorer Bytes mithilfe der Response.Charset -Eigenschaft interpretieren mitzuteilen. Dieses Szenario kann erforderlich sein, wenn die ursprünglichen Daten wie Rückgabewert ein COM-Objekt nicht als Unicode UTF-8 gespeichert ist oder die Daten in Microsoft SQL Server in einem Feld nicht N (z. B. Varchar).

SQL Server und ASP.NET Globalisierungsprobleme

Unicode-Dateneingabe für SQL Server
Die beste Möglichkeit zum Speichern von Daten in SQL Server ist Unicode verwenden. Wenn wir verwenden geringste Wahrscheinlichkeit Unicodedaten ist INSERT, UPDATE, usw., müssen wir N vor dem hinzufügen. Dadurch ist der Datenbank der Wert Unicode ist. Ein gutes Beispiel hierfür ist die ADO-Objekte. Sie tun dies automatisch verwenden wir das Recordset -Objekt neue Datensätze hinzufügen.

Der folgende Code ist ein Beispiel:
INSERT INTO MusicAlbum (Album_ID, [Year], Name, Artist_ID, Company_ID) VALUES (12345, 2005, N'Abida', 4653, 403)Or:
Dim t As String = "INSERT INTO MusicAlbum(Album_ID, [Year], Name, Artist_ID, Company_ID) VALUES (12345, 2005, N'" & TextBox1.Text & "', 4653, 403)"

Datum/Uhrzeit-Eingabe für SQL Server
Normalerweise haben wir wissen über die Kultur und das Gebietsschema von Datum und Uhrzeit in ASP.NET Anwendung interpretiert. Allerdings riskieren und Drücken der Zeitpunkt Daten in und aus externen Quellen, wir falsch Datums-und Zeitformate. Dies ist immer die Kultur und das Gebietsschema der externen Quelle gleich wie unsere Anwendung nicht sicher. In SQL Server diese gelöst werden kann "aktuelle Sprache"-Attribut in Connectionstring von der Verbindung mit der SQL-Datenbank. Wir bieten dieselbe Spracheinstellung in Connectionstring , wie die Kultur in unserer Anwendung. Dies schützt vor dem Risiko einer Fehlinterpretation, weil SQL Server immer akzeptiert und die Daten mit der oben genannten Einstellung sendet.

System.Globalization-namespace

Dieser Namespace ist das Herzstück der Globalisierung und Lokalisierung in.NET Framework. Die Hauptklasse in diesem Namespace ist die CultureInfo -Klasse. Es enthält Informationen, wie Datums-und Zeitformat, Zahlenformate, Vergleichsinformationen und Textinformationen. Weitere Informationen über die CultureInfo -Klasse finden Sie auf der folgenden MSDN-Website:

Neutrale Kulturen und Kulturen

Eine neutrale Kultur ist eine Kultur, die eine Sprache, aber keinem bestimmten Land oder Region zugeordnet ist. Eine bestimmte Kultur ist eine Sprache und ein bestimmtes Land.

Beispiel: "DE" (neutrale Kultur) ist für die deutsche Sprache jedoch "de-AT" (spezifische Kultur) für die deutsche Sprache gesprochen in Österreich. Neutrale Kulturen können nicht zum Formatieren verwendet werden.

Aktuellen Thread und Kultur Bewusstsein der.NET Framework-Klassen

Alle Klassen und Methoden in der.NET Framework-Bibliothek, wo wir die Ausgabe kulturabhängige zu erwarten, haben zwei integrierte Verhalten:
  • Sie können uns bei Argumenten, sodass die Ausgabe der angegebenen Kultur basiert den Code festzulegen. Dies ist optional.
  • Wenn dies ausgelassen wird (normalerweise ist), die Klassen sind intelligent Thread.CurrentThread.CurrentCulture -Eigenschaft und Arbeit, kontrollieren.
Der Wert dieser Eigenschaft durch Code anpassen können, die der folgenden ähnelt:
    Dim ci As CultureInfo        ci = New CultureInfo("de-AT")
Thread.CurrentThread.CurrentCulture = ci
In diesem Beispiel "de" stellt die deutsche Sprache und "AT" Österreich darstellt. Also in diesem Fall die DateTime.Now(). ToString Methode zurück Datum und Uhrzeit in einem entsprechenden Format wie Datum und Uhrzeit in Deutsch in Österreich ausgedrückt.

Das Framework gewährleistet (wie folgt), dass die CurrentCulture -Eigenschaft immer initialisiert:
  1. Was programmgesteuert festgelegt ist.
  2. Falls sie nicht explizit durch den Programmierer festgelegt ist, wird die Eigenschaft aus den Konfigurationsdateien entnommen (< Globalization >-Tag).
  3. Wenn die Eigenschaft nicht vorhanden ist, die Kultur, auf dem der Webserver ausgeführt, wird. Dies ist normalerweise die neutrale Kultur, die die Sprache des Betriebssystems entspricht.

Ressourcendateien

Alle RESX-Resource-Dateien und Dateien mit Attributs Buildaktion auf Eingebettete Ressource festlegen, die ein ASP.NET Projekt in Visual Studio .NET hinzugefügt, werden automatisch erstellt und Anwendungsassembly als Teil seiner Manifest eingebettet. Dies kann auch manuell erfolgen mithilfe des Dienstprogramms Resource Datei Generator (RESGEN) über eine Befehlszeile von Visual Studio .NET. Weitere Informationen finden Sie auf der folgenden MSDN-Website:Dies ist ein allgemeines Konzept gilt Bedarf Anwendungsressourcen verwaltet, die keinen Bezug zur Globalisierung. Wenn wir Globalisierung implementieren, sollten wir Satellitenassemblys verwenden.

Satellitenassemblys

Satellitenassemblys können in ein ASP.NET Projekt verwendet werden, wenn Sie sicherstellen, dass Folgendes zutrifft:
  1. Die Benutzeroberflächen-Elemente in allen ASPX-Dateien müssen mit Id und Runat = Serverattribute.
  2. Separate RESX-Dateien erstellt. Jeder muss auf jeder Kultur entsprechen wir unsere Anwendung unterstützen soll.
  3. Wir müssen einen gemeinsamen Vornamen für diese Dateien z.B. "Strings" entscheiden.
  4. Wir separate RESX-Dateien mit folgenden naming Convention Commonfirstname. Sprachcode RegioncodeRESX-Namen (Beispiel: Strings.de-aus Strings.en-GB.resx).
  5. Wir müssen die Ressourcendatei
    CommonfirstnameRESX (Strings.resx) hat alle Zeichenfolgen im Standardfall beliebig angezeigt.
  6. Code zum Erkennen der Kultur des Benutzers und die Thread.CurrentThread.CurrentUICulture -Eigenschaft entsprechend zu schreiben.
  7. Schreiben Sie Code zum Laden von Ressourcen mithilfe der ResourceManager -Klasse.
  8. Schreiben Sie Code, um Zeichenfolgen aus dem geladenen Objekt extrahieren und Benutzeroberflächenelemente zuweisen.
Wenn Sie diese Schritte durchgeführt haben, wird Visual Studio.NET Strings.resx kompilieren und eingebettet in der Anwendungsassembly (MyGlobalizationTestProjectName.dll). Jedoch wird für alle RESX-Dateien es separate Dll-Dateien generiert, die keinen ausführbaren Code jedoch nur Ressourcendaten. Satellitenassemblys werden tatsächlich genannt. Außerdem stellt Visual Studio .NET in Ordnerstruktur ähnlich der folgenden:
MyGlobalizationTestProjectName        |------- bin
|------en-US
MyGlobalizationTestProjectName.resources.dll
|------ja-JP
MyGlobalizationTestProjectName.resources.dll
|------de-AT
MyGlobalizationTestProjectName.resources.dll

Unterschied zwischen CurrentCulture und CurrentUICulture

Während die Methoden der Klassen in System.Globalization -Namespace Thread.CurrentThread.CurrentCulture -Eigenschaft auf ihre Ausgabe abhängen, abhängig ResourceManager -Klasse, die die Ressourcenassembly lädt Thread.CurrentThread.CurrentUICulture die entsprechende Satellitenassembly geladen. Folgendes ist ein Beispiel für C#-Code:
using System.Globalization;using System.Threading;
using System.Resources;

//Load resources.
protected ResourceManager gStrings = new ResourceManager("MyGlobalizationTestProjectName.strings", typeof(MyTestWebFormName).Assembly);

// Get the user's preferred language.
string sLang = Request.UserLanguages[0];
// Set the thread's culture for formatting, comparisons, etc.
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(sLang);
// Set the thread's UICulture to load resources
// from satellite assembly.
Thread.CurrentThread.CurrentUICulture = new CultureInfo(sLang);

private void Page_Load(object sender, System.EventArgs e)

{

if (!IsPostBack)

{
// Get strings from resource file and assign to UI elements.
head1.InnerHtml = gStrings.GetString("satellite.head1");
p1.InnerHtml = gStrings.GetString("satellite.p1");
sp1.InnerHtml = gStrings.GetString("satellite.sp1");
sp2.InnerHtml = gStrings.GetString("satellite.sp2");
butOK.Text = gStrings.GetString("satellite.butOK");
butCancel.Value = gStrings.GetString("satellite.butCancel");
}

}

Reihenfolge in der ASP.NET Satellitenassemblys auswählt:

Beim Festlegen der Thread CurrentUICulturewählt ASP.NET automatisch die übereinstimmen, in der folgenden Reihenfolge:
  • Eine Satellitenassembly mit einer entsprechenden Kultur gefunden wird, werden die Ressourcen in dieser Assembly verwendet.
  • Wenn eine Satellitenassembly mit einer neutralen Kultur, die CurrentUICultureübereinstimmt gefunden wird, werden Ressourcen aus der Assembly verwendet.
  • Wenn für CurrentUICultureeine Übereinstimmung gefunden wird, dienen die Fallbackressourcen in die ausführbare Assembly gespeichert.
Hinweis Dies basiert auf den allgemeinen Ressourcenfallback-Prozess. Weitere Informationen finden Sie auf der folgenden MSDN-Website:

Manuelles Erstellen von Satellitenassemblys:

Die Verwendung von Satellitenassemblys ist, Visual Studio .NET die Assemblys selbst erstellt. Visual Studio .NET Satellitenassemblys starken Namen standardmäßig jedoch nicht. Wenn Sie diese Optionen ändern möchten, müssten Sie Satellitenassemblys manuell erstellen. Weitere Informationen finden Sie auf der folgenden MSDN-Website:.

Was ist mit ASP.NET 2.0 vor Globalisierung?

Umfangreiche Verwendung von ASP.NET und die Probleme, die wir im Hinblick auf Globalisierungsfunktionen in ASP.NET 2.0 sehen sind weiterhin weit voraus. Allerdings wäre es gut, einen kurzen Blick auf welche Richtung Globalisierung Methodik für ASP.NET-Webanwendungen geleitet wird.

Globalisierungsunterstützung in ASP.NET 2.0 wurde die Änderung und Web-Entwickler haben die Möglichkeit, die Lokalisierung von Web-Applikationen für Windows-basierte Anwendung ist einfach. Folgendes ist eine Liste der Features, die die Grundlage der Globalisierung Methodik in ASP.NET 2.0 sind:

Stark typisierte Ressourcen Das Herzstück von.NET Framework 2.0 Version unterstützt stark typisierte Ressourcen, die Entwickler mithilfe von Intellisense und vereinfacht Zugriff auf Ressourcen zur Laufzeit erforderlich.

Verwaltete Ressourcen-Editor Visual Studio .NET 2.0 enthält neue Ressourcen-Editor zum Erstellen und Verwalten von Ressourceneinträgen einschließlich Zeichenfolgen, Bildern, externen Dateien und anderen komplexen Typen besser unterstützen.

Generierung von Ressourcen für Web Forms Windows Forms-Entwickler haben bereits die Vorteile der automatischen Internationalisierung. Visual Studio .NET 2005 unterstützt jetzt schneller Internationalisierung generiert automatisch Ressourcen für Web Forms, Benutzersteuerelementen und Masterseiten.

Verbesserte Unterstützung für Common Language runtime ResourceManager-Instanzen werden von der Laufzeit und zugänglichen Servercode zugänglicher Programmierschnittstellen.

Lokalisierungsausdrücke Moderne deklarative Ausdrücke für Webseiten unterstützen Ressource Zuordnungseinträge Eigenschaften, HTML oder statische Inhaltsbereiche steuern. Diese Ausdrücke sind erweiterbar, bietet zusätzliche Verfahren zur Steuerung der Vorgang lokalisierten Inhalte in HTML-Ausgabe.

Automatische Kultur Auswahl Verwalten von Kultur Auswahl für jede Web-Anforderung kann automatisch mit Browsereinstellungen verknüpft werden.

Ressourcen-Providermodells Neue Ressourcen Provider-Modell kann Entwickler Hostressourcen in anderen Datenquellen wie Dateien und Tabellen, während das Programmiermodell für den Zugriff auf diese Ressourcen konsistent bleibt.

Weitere Informationen zu Globalisierung Methodik in ASP.NET 2.0 finden Sie auf der folgenden MSDN-Website:
ASP.NET 2.0 Localization Features: Ein neuer Ansatz zur Lokalisierung von ASP.NET-Webanwendungen
http://msdn2.microsoft.com/en-us/library/ms379546(VS.80).aspx

Abschluss

Das ist jetzt zu Globalisierungsproblemen ASP und ASP.NET. Ich hoffe, dass dieser Artikel hilft Kunden ihre Globalisierungsprobleme ASP und ASP.NET beheben, bevor sie entscheiden, wenden Sie sich an Microsoft Support. Mit den folgenden betrachtet abschließend:

"Wo und wann Sie entwickeln, denken Sie Millionen von Menschen weltweit helfen kann. Machen Sie Projektmappen lokalisierungsbereit Microsoft Tools und Technologie erleichtern Internationalisierung."

Wir fangen mit einem anderen Thema erneut nächsten Monat.

Vielen Dank für Ihre Zeit.
Weitere Informationen zu Globalisierungsproblemen in ASP und ASP.NET finden Sie auf der folgenden Microsoft-Websites:
Globalisierung Schritt für Schritt
http://msdn.microsoft.com/en-us/goglobal/bb688110
Go Global: Lokalisieren von Dynamic Web Apps mit IIS 5.0 und SQL Server
http://msdn.microsoft.com/msdnmag/issues/01/05/global/default.aspx
Go Global: Entwerfen der ASP-basierten Website zur Unterstützung der Globalisierung
http://msdn.microsoft.com/msdnmag/issues/0700/localize/default.aspx
315616 wie eine Clientsprache in einer Active Server Pages-Seite in IIS
http://support.microsoft.com/?id=315616
Ressourcen und Lokalisierung mit.NET Framework SDK
http://msdn2.microsoft.com/en-us/library/aa309421(VS.71).aspx
Konfigurationselement ASP.NET < Globalization >
http://msdn2.microsoft.com/en-us/library/hy4kkhe0(vs.71).aspx
Design- und Implementierungsrichtlinien für Webclients - Globalisierung und Lokalisierung
http://msdn2.microsoft.com/en-us/library/ms978628.aspx
Offizielle Website – Global Development and Computing Portal
http://msdn.microsoft.com/en-us/goglobal/bb688096
Globalisierungsarchitektur für ASP.NET
http://msdn2.microsoft.com/en-us/library/aa478974.aspx
Enterprise Lokalisierung Toolkit lokalisierten Microsoft ASP.NET Anwendungsentwicklung
http://msdn2.microsoft.com/en-us/library/aa479334.aspx
839861 eine System.Resources.MissingManifestResourceException-Ausnahme tritt auf, wenn Sie versuchen, eine lokalisierte Ressource

Glossar

ANSI Steht für American National Standards Institute. In diesem Zusammenhang stellt eine bestimmte Codepage für eine bestimmte Sprache/Zeichensatz dar. Meistens bezieht sich auf die englische Codepage (Windows-1252).

ASCII Ein Kodierung Schema 1 Byte (oder 7-Bit). Die Zeichen im Bereich 0-127 sind standardisiert. Die 128-255 reichen Extensions ASCII und nicht dem Standard. Ein Beispiel hierfür ist die Differenz zwischen dem oberen Bereich des ACSII-OEM und ACSII-VB.

Zeichensatz Einstellung verwendet hauptsächlich für Internet Explorer und Browsern, die dem Browser wie Zeichendaten interpretiert wird. Beispiel: Response.charSet = "Iso-8859-1".

Codepage Eine Tabelle, die angibt, wie Zeichen codiert werden (normalerweise für Server verwendet).

Globalisierung Globalisierung ist ein Prozess entwerfen und Erstellen einer Anwendung eindeutig eine Kultur, Region oder nationalen und sprachlichen Bedürfnisse erfüllt werden können. Ist die Globalisierung also beim Entwerfen einer Anwendung so, dass sie später lokalisiert werden kann.

Gebietsschema-Kultur Sprache und Region spezifische Formate Preferences einschließlich, Datum und Kalenderformate Zeitformate, Währung, Groß-/Kleinschreibung, Sortierung und Zeichenfolgenvergleich, Adressformate, Telefon Zahlenformate, Papierformate, Einheit, Richtung usw. schreiben.

Gebietsschema-ID (LCID) Ein DWORD-Wert, der Sprach-ID und Sortier-ID angibt Hiermit können Sie bestimmte Region Formate anzugeben z. B. Datum, Uhrzeit usw. entsprechend formatiert werden soll.

Lokalisierbarkeit Fähigkeit einer Anwendung, die Inhalte für das angeforderte Gebietsschema.

Lokalisierung Lokalisierung ist der Prozess der Übersetzung der Benutzeroberfläche in bestimmten Sprachen und Gebietsschemas.

Mehrbyte-Zeichensatz Ein Zeichensatz, in dem Zeichen bestehen mindestens zwei Bytes wie Japanisch. UTF-8 fällt auch unter diese Kategorie. (Unicode ist technisch in dieser Kategorie, aber in Windows hat eine eigene Kategorie.)

Unicode Eine 2-Byte-Codierungsschema. Windows verwendet intern Unicode. APIs für Unicode sind durch "W" am Ende des Funktionsnamens angezeigt. Auch wide char kann direkt von ASP.NET-Webanwendungen verwendet werden.

UTF-8 Ein Zeichensatz, in dem ein Zeichen 1 bis 6 Bytes dargestellt werden kann. Unter Windows ist der Bereich 1 bis 3 Bytes. Unter NT4 unterstützt für ASP.NET-Webanwendungen nicht.
Klicken Sie für weitere Informationen auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
175392 UTF8-Unterstützung


Große Zeichen Alias für Unicode. Auch bekannt als DBCS (double-Byte Character Set), UCS-2 und UTF-16.
Wie immer gerne Ideen zu Themen soll in Zukunft Spalten oder in der Knowledge Base mit der
Bitten Sie für Form.