Heim > Web-Frontend > HTML-Tutorial > Kann ein HTML5-Zeichensatz verwendet werden?

Kann ein HTML5-Zeichensatz verwendet werden?

伊谢尔伦
Freigeben: 2016-12-01 10:39:02
Original
1417 Leute haben es durchsucht

Im vorherigen Absatz erschien die Seite eines Projekts in IE6 plötzlich verstümmelt. Ich habe damals verschiedene Fehlerbehebungen durchgeführt und schließlich vermutet, dass es ein Problem bei der Verwendung von HTML5s DOCTYPE und Charset sowie chinesischen Kommentaren war, also habe ich vorübergehend die alten verwendet Mit der Charset-Methode wurde der verstümmelte Code nicht mehr angezeigt.

Tatsächlich war ich nie sicher, ob HTML5-Zeichensatz von IE6 erkannt werden kann, also habe ich einige Tests durchgeführt.

Lassen Sie uns zunächst über die beiden Charset-Deklarationsmethoden sprechen. Eigentlich sollte jeder mit ihnen vertraut sein:

Von nun an bezeichnen wir die erste Methode als HTML5-Methode und die zweite Methode wie die HTML4-Methode.

Testumgebung:

Windows XP Sp2, chinesische Version + englische Version von IE6 und IE9 unter Windows 7 und seinen verschiedenen Kompatibilitätsmodi und der aktuellen stabilen Version von Chrome, Firefox usw.;

Da die von uns verwendeten HTML-Dateien alle in UTF8 codiert sind, liegen die HTML-Dateien in den Testfällen hier auch im UTF8-Format (kein BOM) vor. Das Projekt ist ähnlich mit gbk oder gb2312 codiert.

Zum Testen wurden zwei Methoden verwendet:

Meta-Methode: einschließlich HTML5- und HTML4-Methoden und deren Mashups

Serverseitige Methode: Zeichensatz auf der Serverseite festlegen, Nginx ist hier verwendet, charset=utf-8

Testfall – Meta-Methode:

UTF8

UTF8 HTML4-Methode

UTF8-GB2312

UTF8+ chinesische Kommentare vor Meta

UTF8+ chinesische Kommentare zwischen HTML und HEAD

GB2312

GB2312 HTML4-Methode

GB2312-UTF8

GB2312+Chinesische Kommentare vor Meta

GB2312+Chinesische Kommentare zwischen HTML und HEAD

Testfall – Servermethode:

Servereinstellungskodierung

Die Metakodierung stimmt nicht mit der Serverkodierung überein

Auf jeden oben genannten Anwendungsfall kann direkt zugegriffen werden

Testergebnisse:

Die Testfälle wurden in jedem Browser konsistent ausgeführt;

Im UTF-8-Schema wird alles normal angezeigt.

Der Zeichensatz ist als gb2312 deklariert, was nicht mit der UTF-8-Kodierung des Dokuments übereinstimmt, sodass alle Zeichen verstümmelt sind. 6 verwenden den HTML5-Zeichensatz UTF8 bzw. gb2312 sind definiert, 1 wird normal ohne verstümmelte Zeichen angezeigt, 6 ist verstümmelt – dies gilt sowohl für die chinesische Version von IE6 als auch für die englische Version von IE6, was darauf hinweist, dass IE6 den Zeichensatz von HTML5 erkennen kann;

1, 2 Anwendungsfälle und 6, 7 Anwendungsfälle, verwenden Sie HTML5- und HTML4-Methoden, um den Zeichensatz separat zu definieren, der Effekt ist der gleiche

Es ist erwähnenswert, dass der dritte Anwendungsfall zuerst ist Verwendet die HTML5-Methode, um die UTF-8-Codierung festzulegen, und verwendet dann die HTML4-Codierungseinstellung. Es ist gb2312, aber die Seite wird normal angezeigt, während im achten Anwendungsfall die Ergebnisseite im Gegenteil verstümmelte Zeichen anzeigt, also es Es kann vermutet werden, dass das zweite Meta-Tag keine Wirkung zeigt.

Die Anwendungsfälle 4 und 5 weisen keine verstümmelten Zeichen auf, was darauf hindeutet, dass es sich lediglich um HTML-Kommentare handelt, die nicht unbedingt verstümmelte Zeichen verursachen Was kann passieren, wenn externe Dateien wie js mit unterschiedlichen Codierungen an diesen beiden Speicherorten geladen werden?

In der Servermethode verwendet Anwendungsfall 1 kein Meta zum Festlegen des Zeichensatzes, die Seite Die Anzeige ist normal, wird aber verwendet In Fall 2 wird Meta zum Festlegen von charset=gb2312 verwendet, was sich von der Serverversion unterscheidet, aber es gibt immer noch keinen verstümmelten Code, was darauf hinweist, dass der vom Server zurückgegebene Zeichensatz eine höhere Priorität hat

Schlussfolgerung:

Tatsächlich wird in den Entwicklungsdokumenten von Google auch Folgendes erklärt:

muss im HEAD-Tag stehen;

muss vor allen anderen Inhalten stehen, das heißt, es muss sein am Anfang von HEAD ; Einschließlich Leerzeichen und DOCTYPE-Deklaration muss es innerhalb der ersten 512 Bytes liegen

HTML5 und HTML4 haben den gleichen Effekt, verwenden Sie einfach eines davon

Der obige Test beweist auch, dass Punkt 4 richtig ist und beide Schreibweisen akzeptabel sind.

Darüber hinaus ist es auch eine gute Idee, den Zeichensatz auf der Serverseite festzulegen. Die Zeichensatzanweisung wird direkt in der HTTP-Antwort abgerufen, was effizienter und bequemer ist. Google verwendet derzeit diesen Ansatz.

Solange die Seite also standardisiert geschrieben ist, wird es kein Problem mit verstümmelten Zeichen geben. Sie können also problemlos die DOCTYPE- und Charset-Deklarationen von HTML5 verwenden. Versuchen Sie jedoch, die oben genannten Spezifikationen in den Google-Dokumenten zu befolgen. Platzieren Sie nicht zu viele Dinge im Kopf und platzieren Sie externe Ressourcen wie js hinten.

Es ist unvermeidlich, dass es im Test zu Auslassungen kommt. Wenn es Ungenauigkeiten gibt, korrigieren Sie diese bitte und besprechen Sie sie gemeinsam~~

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage