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:

  1. Ich habe sicher den .aspx-Datei ist in der Tat als UTF-8 kodiert.
  2. Habe ich den meta-tag:

    <meta charset="UTF-8">

  3. Ich legen Sie das virtuelle Verzeichnis zu handhaben .aspx als text/html;charset=utf-8 unter HTTP-Header > Datei-Typ in IIS.

  4. Ich Hinzugefügt ResponseEncoding="utf-8" zu <%@ Page ... %>.
  5. Ich steckte den string in HttpUtility.HtmlEncoded(). Jetzt die ü umgewandelt wurde, um ü (U+00C3 U+00BC).

Schließlich fand ich 2 Möglichkeiten gearbeitet:

  1. Ersetzen von nicht-ASCII-Zeichen mit Zeichen-Referenzen, wie &#252; es okay war in den 90er Jahren, heute nicht.
  2. 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
Schreibe einen Kommentar