Frage

Ich habe einige chinesische Charaktere, die ich auf einer Kentico-betriebenen Website anzeigen versuche. Dieser Text wird in den Kenticos FCK -Editor kopiert/eingefügt und dann gespeichert und erscheint auf der Website. In Firefox, Chrome und Safari erscheinen die Charaktere genau wie erwartet. Im IE 8 -Standardmodus sehe ich nur Kisten.

Der Text ist UTF-8 codiert, und soweit ich das beurteilen kann, ist er in der Antwort vom Server korrekt codiert. Da ist ein Content-Type: text/html; charset=utf-8 Antwortheader und a <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> Meta -Tag auch auf der Seite. Wenn ich das HTML vom Server herunterlade und die Bytes der betreffenden Zeichen mit dem ursprünglichen UTF-8-Textdokument vergleicht, enthält alle Bytes, außer dass die HTML keine BOM enthält.

Dies scheint spezifisch für den IE 8 im Standardmodus zu sein. In IE 8 Koriks: Es funktioniert. Dh 7 Standards: Es funktioniert. Dh 7 Macken: Werke. Ich bin mir nicht sicher, wie der Standardmodus dieses Problem verursachen würde.

Seltsamerweise werden die Charaktere in der Quellansicht korrekt angezeigt, wenn ich von dem IE studiere.

Irgendwelche Vorschläge darüber, was hier falsch sein könnte? Vermisse ich etwas Offensichtliches?

War es hilfreich?

Lösung

Ich kann das nicht im Detail erklären. Dies ist jedoch in der Tat ein bekanntes Problem.

Hier ist ein kleiner reproduzierbarer Code -Snippet:

<!DOCTYPE html>
<html lang="en">
    <head><title>test</title></head>
    <body><p>&#65185;<br>0 0</p></body>
</html>

Speichern Sie es in UTF-8 und betrachten Sie IE8. Du siehst nichts. Ersetzen 0 0 durch 00 und laden Sie die Seite neu. Es wird gut funktionieren! Das ist absolut erstaunlich. Seltsam ersetzen 0 0 durch a a oder der <br> durch eine </p><p> werde es auch reparieren. Es wird etwas mit Misserfolge beim Rendering von Whitespace zu tun haben.

Entschuldigung, ich habe keine autorisierenden Ressourcen, die dies beweisen, aber dies ist nur ein weiterer Beweis, den IE8 nicht so gut ist, wie wir es erwarten. Am besten wechselt es, die HTML zu ändern und/oder Schritt für Schritt so zu erstellen, dass es irgendwann oder vergeblich funktioniert, das folgende Meta -Tag zum Kopf hinzufügen, um IE8 in den IE7 -Modus zu zwingen:

<meta http-equiv="X-UA-Compatible" content="IE=7" />

Andere Tipps

Die Standard-IE-Codierung ist westeuropäisch (ISO), daher müssen Sie es manuell in UTF-8 ändern oder den IE erzwingen, eine bestimmte Codierung wie folgt zu verwenden:

  • HTML 4.01

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">

  • HTML 5

    <meta charset="UTF-8">

Und Sie müssen auch verwenden lang Attribut in <html> Tag, um Sprache zu deklarieren

    <html lang="zh">

Für Chinesen

Nur eine wilde Vermutung, aber es könnte ein Schriftproblem sein. Vielleicht können die Schriftarten, die Ihrem Browser zur Verfügung stehen, diese chinesischen Charaktere darstellen.

Ich habe es geschafft, dasselbe Problem zu beheben, indem ich das UTF -Format der Datei in "UTF8 mit Byte -Bestellmarke" geändert habe.

(Mit dem Editor, den ich verwende, kann ich die Dateiformate leicht wechseln, nicht sicher, wie ich ansonsten vorgehen soll, aber es lohnt sich, sich die verschiedenen UTF -Dateiformate anzusehen, dh (8) mag UTF8 einfach nicht ohne Byte -Bestellmarken ...)

Ich konnte auch den Ausschnitt aus der obigen Antwort reproduzieren;

<!DOCTYPE html>
<html lang="en">
    <head><title>test</title></head>
    <body><p>&#65185;<br>0 0</p></body>
</html>

Aber meine Ergebnisse waren "zeitweise", während sie in UTF-ohne Bom (manchmal wurden Akzente aufgetaucht Lang = "FR" und Lang = "es", aber in allen Fällen scheint das Ändern des UTF -Dateiformats dauerhaft behoben zu sein, wie meine Akzente Probleme angezeigt haben. :)

Ich bin nicht zu 100% mit UTF vertraut, aber wenn die Chars mit 2 Bytes codiert werden, müsste man davon ausgehen, dass Probleme mit weißem Raum und missverstandenen Geboten mit falsch ausgerichteten Bytes in den Quellen in Verbindung gebracht werden könnten.

Dies kann die gleiche Art von Dingen sein, die dazu führte, dass Rails 3 ihrem Ausgang einen Schneemann -Charakter hinzufügte: Wofür ist der _Snowman -Param in Ruby on Rails 3 Formen?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top