Was passiert, wenn wir nicht angeben <meta charset="utf-8">
im HEAD des HTML-Dokuments?
Was passiert, wenn wir nicht angeben ?
Pankaj Parashar
Ob ein solches meta
-Tag vorhanden ist oder nicht, suchen Browser und Benutzeragenten zunächst in den HTTP-Headern nach Codierungsinformationen. Tatsächlich werden sie sogar vorher Benutzereinstellungen respektieren und BOM-Sniffing durchführen, wie in Abschnitt 8.2.2.1 beschrieben Bestimmung der Zeichenkodierung in HTML5 CR – das ist in dieser Ausgabe eher eine Beschreibung der Realität als nur eine vorgeschlagene Norm.
Die Antwort lautet also wirklich „es kommt darauf an“. In vielen Fällen ist die meta
-Tag wird ignoriert, daher hat das Weglassen keine Auswirkung, außer vielleicht in Situationen, in denen das HTML-Dokument lokal gespeichert wird (so dass HTTP-Header verloren gehen). In vielen anderen Fällen wird es nicht ignoriert, aber wenn es weggelassen wird, werden Browser trotzdem auf die richtige Codierung schließen. Und in einigen Fällen, in denen das Tag das Einzige ist, was den Browser dazu bringt, die richtige Codierung zu verwenden, führt das Weglassen zu einer falschen Interpretation der Daten, typischerweise so, dass Bytes in der Windows-1252-Codierung interpretiert werden. Worauf es dabei ankommt, hängt vom tatsächlichen Inhalt ab.
-
Können Sie ein Beispiel geben, wo Weglassen einen Unterschied machen würde?
– larry909
6. Februar 2020 um 9:20 Uhr
Darin Dimitrow
Was passiert, wenn wir nicht angeben
<meta charset="utf-8">
? im HEAD des HTML-Dokuments?
Der Benutzeragent sucht nach dem vom Server gesendeten Content-Type-Antwort-HTTP-Header:
Content-Type: text/html; charset=utf-8
Und wenn der Content-Type-Header kein a charset
je nach User Agent können unterschiedliche Dinge passieren. Einige Benutzeragenten könnten versuchen, Heuristiken zu verwenden erraten den korrekten Zeichensatz, indem Sie einige der Bytes aus dem Antwortstrom analysieren und nach bekannten Kodierungen suchen. Und wenn dies fehlschlägt, könnten am Ende ein paar Fragezeichen oder seltsame Symbole auf Ihrer Webseite an der Stelle erscheinen, an der Sie Zeichen außerhalb des ASCII-Bereichs verwendet haben.
-
Diese Antwort ist etwas irreführend, da immer zuerst der HTTP-Header untersucht wird.
– Benutzer123444555621
12. Mai 2013 um 11:39 Uhr
für Charaktere wie:
↑→↓←
sie würden wie folgt angezeigt:
↑→↓â†
es sei denn, Sie verwenden das UTF-8-Format:
<meta charset="UTF-8">
-
Kam hierher, um das zu sagen. Dies gilt auch für MS Word-formatierten Text, der in HTML eingefügt wird.
<meta charset="utf-8">
ist der Unterschied zwischen Sehen“…”
gegen sehen“…â€
– RedDragonWebDesign
27. Juli 2020 um 13:52 Uhr