Brauche ich Internet.config für nicht-ASCII-Zeichen?
Versucht, um meine erste ASP.NET Seite. Habe IIS 5.1 unter XP konfiguriert .NET 4. Erstellt eine neue virtuelle Verzeichnis, und Hinzugefügt .aspx-Datei. Wenn ich durchsuchen die Datei nicht-ASCII-Zeichen sind beschädigt. Zum Beispiel, ein ü (U+00 FC) transformiert wird zu ü (U+00C3 U+00BC), die ich-nicht-bekommen-das-ist-UTF-8-Entsprechung.
Ich habe versucht, verschiedene Möglichkeiten der Nutzung dieser:
- Ich habe sicher den .aspx-Datei ist in der Tat als UTF-8 kodiert.
-
Habe ich den meta-tag:
<meta charset="UTF-8">
-
Ich legen Sie das virtuelle Verzeichnis zu handhaben .aspx als
text/html;charset=utf-8
unter HTTP-Header > Datei-Typ in IIS. - Ich Hinzugefügt
ResponseEncoding="utf-8"
zu<%@ Page ... %>
. - Ich steckte den string in
HttpUtility.HtmlEncoded()
. Jetzt die ü umgewandelt wurde, um ü (U+00C3 U+00BC).
Schließlich fand ich 2 Möglichkeiten gearbeitet:
- Ersetzen von nicht-ASCII-Zeichen mit Zeichen-Referenzen, wie
ü
es okay war in den 90er Jahren, heute nicht. -
Hinzufügen einer web.config-Datei für das virtuelle Verzeichnis, mit diesem Inhalt:
<?xml version="1.0" encoding="utf-8"?> <configuration> <system.web> <globalization fileEncoding="utf-8"/> </system.web> </configuration>
Ohne fileEncoding
Einstellung, die ASP.NET parser Lesen die .aspx und korrupte jedes nicht-ASCII-Zeichen ohne den Versuch zu schließen, die Datei-Codierung. Ist das einfach etwas, das Sie Vorteile haben gelernt, damit zu Leben, oder bin ich etwas fehlt? Ist eine web.config-Datei, die mit der Globalisierung Einstellungen die Art und Weise zu handhaben "internationalen" Zeichen auf .aspx-Seiten? Ich kann mich nicht erinnern, dass ähnliche Probleme mit PHP, also bin ich verwirrt, warum dieses Getreide mit ASP.NET.
- Ich habe einen anderen Weg gefunden, der es ohne das web.config-Datei: Speichern Sie die .aspx-Seite als UTF-8 mit bom (byte-order-mark (BOM). Im Allgemeinen, UTF-8 nicht benötigen, sollten Sie eine Stückliste, da die byte-Reihenfolge ist implizit in der Kodierung, aber Microsoft haben eine tradition, die es erfordern, das ist wahrscheinlich das richtige zu tun, denn es macht Herleitung der Datei-Kodierung robuster. Ich denke, das ist die Art von Lösung, die ich gesucht hatte, aber Kommentare sind immer noch willkommen.
- Sie sollten die Installation von Microsoft Web platform installer und verwenden von IIS express 7.5 und web matrix oder VS 2010 express
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für die Verwendung von nicht-ASCII-Zeichen, die Sie benötigen, um zwei Dinge. Speichern Sie die Dateien mit UTF-8, indem Sie diese Kodierung für die Dateien aus und stellen Sie sicher, dass Sie diese Einstellungen auf Ihrem web.config
Beachten Sie, dass es immer eine web.config auf ASP.NET. Es ist die Globale eine, die hat auch diese Einstellungen und das Leben in der asp.net Verzeichnis
{drive:}\WINDOWS\Microsoft.NET\Framework\{version}\CONFIG\
, und dann das web.config auf Ihr Projekt. Manchmal ist die Globale setzt man die Codierung aus dem aktuellen Land. In diesem Fall müssen Sie die Einstellung wieder auf UTF-8 in deinem Projekt.Haben Sie fand das alles schon, ich habe nur darauf aus, die 3 Einstellungen: