Der Meta-Header Content-Type informiert den Browser darüber, dass der Inhalt als UTF-8-codierter Textstream behandelt wird. Es stellt nicht sicher, dass der gesendete Stream tatsächlich UTF-8 ist. Um UTF-8 richtig zu handhaben, müssen Sie drei Dinge tun: -
- Stellen Sie sicher, dass Ihr statischer Inhalt in einer UTF-8-kompatiblen Codierung gespeichert wird.
- Stellen Sie sicher, dass Ihr dynamischer Inhalt in UTF-8 codiert ist.
- Informieren Sie den Client, dass der Inhalt UTF-8-codiert ist.
Artikel 1 erfordert entweder, dass Sie tatsächlich die ASP-Datei als UTF-8 kodierten Datei oder dass alle Ihre statischen Inhalte in der innerhalb des ASCII-Zeichenbereiches (0-127) Datei speichern. Hinweis: Wenn Sie als UTF-8 speichern, müssen alle serverseitigen Skripts Zeichen innerhalb des ASCII-Zeichenbereichs verwenden. In Visual Studio können Sie dies tun, indem Sie "Datei speichern unter ..." und dann auf den kleinen Pfeil auf der Schaltfläche Speichern klicken.
Artikel 2 erfordert, dass die Response.CodePage
Eigenschaft auf die Seite UTF-8-Code festgelegt ist 65001, können Sie dies im Code tun oder durch das Attribut CODEPAGE=65001
in der ersten Zeile der ASP-Datei auf die <%@ %>
Erklärungen hinzufügen. Wenn Sie es in Code tun, müssen Sie es vor allen Aufrufen an Response.Write
festlegen. UND: Verwenden Sie nicht CHR oder ASC-Funktionen (diese sind fehlerhaft, wenn Sie 65001 verwenden), sondern stattdessen CHRW und Ascw.
Artikel 3 erfordert, dass der Header Content-Type
den Qualifier charset=UTF-8
enthält. Wie Sie es bereits tun, können Sie dies mit dem META-Header tun. Persönlich finde ich, dass um ein bisschen Kludge zu sein, ich bevorzuge Response.Charset = "UTF-8"
in Code zu verwenden. Dies platziert das Qualifikationsmerkmal auf den wahren HTTP-Header Content-Type
.
Vielen Dank! Für mich geht das. Ich füge nur dieses Skript auf meiner Seite hinzu. Danke vielmals! Ich kann nicht sofort antworten, weil ich an diesen Tagen nicht online sein kann. Vielen Dank. – RedsDevils
Ist es nicht lustig, wenn Sie eine Antwort auf eine Frage erhalten, die Sie vor 5 Jahren beantwortet haben? – BenCr