Ich versuche, meine erste ASP.NET-Seite zu erstellen. Hat IIS 5.1 auf XP, konfiguriert, um .NET 4 auszuführen. Erstellt ein neues virtuelles Verzeichnis und fügte eine ASPX-Datei hinzu. Wenn ich die Datei durchsuche, sind Nicht-ASCII-Zeichen beschädigt. Zum Beispiel wird ein ü (U + 00FC) in Ü umgewandelt (U + 00C3 U + 00BC), was das I-Don't-get-this-is-UTF-8-Äquivalent ist.Benötige ich web.config für Nicht-ASCII-Zeichen?
Ich habe verschiedene Wege versucht, diese von Anspruch nimmt:
- ich sicher, dass die ASPX-Datei in der Tat als UTF-8 codiert ist.
Ich habe das Meta-Tag:
<meta charset="UTF-8">
ich das virtuelle Verzeichnis in IIS zu handhaben ASPX- als
text/html;charset=utf-8
unter HTTP-Header> Dateityp festgelegt.- Ich fügte
ResponseEncoding="utf-8"
zu<%@ Page ... %>
hinzu. - Ich habe die Zeichenfolge in
HttpUtility.HtmlEncoded()
eingefügt. Nun wurde das ü in à ¼ (U + 00C3 U + 00BC) transformiert.
Schließlich fand ich 2 Möglichkeiten, wie gearbeitet:
- Ersetzen Nicht-ASCII-Zeichen mit Zeichenreferenzen, wie
ü
Das war in Ordnung, in den 90er Jahren, nicht heute. Hinzufügen einer Datei web.config auf das virtuelle Verzeichnis, mit folgendem Inhalt:
<?xml version="1.0" encoding="utf-8"?> <configuration> <system.web> <globalization fileEncoding="utf-8"/> </system.web> </configuration>
Ohne fileEncoding
Einstellung wird der ASP.NET-Parser die ASPX und korrupte jeder Nicht-ASCII-Zeichen gelesen ohne zu versuchen, auf die Dateicodierung zu schließen. Ist das etwas, mit dem Sie Profis gelernt haben, oder fehlt mir etwas? Ist eine web.config-Datei mit Globalisierungseinstellungen die Möglichkeit, "internationale" Zeichen auf ASPX-Seiten zu behandeln? Ich kann mich nicht erinnern, ähnliche Probleme mit PHP gehabt zu haben, also bin ich verwirrt, warum das mit ASP.NET auftaucht.
fand ich eine andere Art und Weise funktioniert, ohne die Datei web.config machen: Speichern Sie die ASPX-Seite als UTF-8 mit Byte-Reihenfolge-Markierung (BOM). Im Allgemeinen sollte UTF-8 keine BOM benötigen, da die Byte-Reihenfolge implizit in der Kodierung ist, aber Microsoft hat eine Tradition, dies zu verlangen, was wahrscheinlich das Richtige ist, da es die Kodierung der Datei weiter leitet robust. Ich denke, das ist die Art von Lösung, die ich suchte, aber Kommentare sind immer noch willkommen. –
Sie sollten in Erwägung ziehen, das Installationsprogramm für Microsoft Web Platform zu installieren und IIS express 7.5 und web matrix oder VS 2010 express – Aviatrix