Das <head>-Element und die Zeichenkodierung UTF-8 im HTML5


Metadaten-Informationen einer HTML5-Webseite


Das erste Kind des Wurzelelements ist üblicherweise das <head>-Element. Das <head>-Element enthält Metadaten-Informationen über die Seite, nicht den Inhalt der Seite selbst. (Der steht im darauf folgenden <body>-Element.) Das <head>-Element selbst ist ziemlich langweilig und hat sich in HTML5 kaum auf interessante Weise geändert. Das Gute ist das, was im <head>-Element steht. Und dazu wenden wir uns wieder unserer Beispielseite zu:


<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>HTML5 Lernen - Grundlagen und Tutorials</title>
	<link rel="stylesheet" type="text/css" href="style-original.css" />
	<link rel="alternate" type="application/atom+xml" title="HTML5 Lernen - Grundlagen und Tutorials feed" href="/feed/" />
	<link rel="search" type="application/opensearchdescription+xml" title="HTML5 Lernen - Grundlagen und Tutorials search" href="opensearch.xml" />
	<link rel="shortcut icon" href="/favicon.ico" />
</head>

Erster Schritt: das <meta>-Element.


Zeichenkodierung


Wenn Sie an "Text" denken, denken Sie wahrscheinlich "Zeichen und Symbole, die ich auf meinem Bildschirm sehe". Aber Computer befassen sich nicht mit Zeichen und Symbolen. Computer befassen sich mit Bits und Bytes. Jedes bisschen Text, das Ihnen je auf einem Bildschirm vor Augen trat, wird eigentlich in einer bestimmten Zeichenkodierung gespeichert. Es gibt unzählige unterschiedliche Zeichenkodierungen. Einige von ihnen sind für bestimmte Sprachen wie Russisch oder Chinesisch oder Englisch gedacht, andere können für viele Sprachen verwendet werden. Grob formuliert, könnte man sagen, dass die Zeichenkodierung die Zuordnung zwischen dem ist, was Sie auf dem Bildschirm sehen, und dem, was Ihr Computer im Speicher und auf der Festplatte speichert.

In Wirklichkeit ist das natürlich etwas komplizierter.

Viele Zeichen tauchen in verschiedenen Kodierungen auf, aber jede dieser Kodierungen kann eine andere Folge von Bytes nutzen, um diese Zeichen tatsächlich im Speicher oder auf der Festplatte zu speichern. Sie können sich eine Zeichenkodierung also als eine Art Entschlüsselungs-Mechanismus für Text vorstellen. Gibt Ihnen jemand eine Folge von Bytes und behauptet, es sei "Text", müssen Sie wissen, welche Zeichenkodierung genutzt wurde, damit Sie die Bytes wieder in Zeichen umrechnen und anzeigen (oder irgendwie verarbeiten) können.

Wie also ermitteln Browser tatsächlich die Zeichenkodierung der Byte-Streams, die der Server sendet? Ich bin froh, dass Sie das fragen. Wenn Sie mit HTTP-Headern vertraut sind, haben Sie vielleicht schon einmal einen Header dieser Form gesehen:


Content-Type: text/html; charset="utf-8"

Kurz und knapp sagt diese Zeile, dass der Server denkt, er sende Ihnen ein HTML-Dokument, das die Zeichenkodierung UTF-8 nutzt. Unglücklicherweise haben im großen Brei des World Wide Web nur äußerst wenige Autoren die Kontrolle über ihre HTTP-Server. Denken Sie an Blogger: Der Inhalt wird von den unterschiedlichsten Personen geschaffen, die Server werden von Google gesteuert. Deswegen bot HTML 4 eine Möglichkeit, die Zeichenkodierung im  HTML-Dokument selbst anzugeben. Auch das haben Sie wahrscheinlich schon gesehen:


<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

Dieses sagt, dass der Webautor meint, er habe ein HTML-Dokument unter Verwendung der Zeichenkodierung UTF-8 geschrieben.

Beide Techniken funktionieren auch in HTML5 noch. Der HTTP-Header ist die bevorzugte Methode und überschreibt ein eventuell vorhandenes <meta>-Tag. Aber da nicht jeder HTTP-Header setzen kann, gibt es das <meta>-Tag immer noch. Und es ist in HTML5 sogar noch etwas einfacher geworden. Es sieht jetzt folgendermaßen aus:


<meta charset="utf-8" />

Der Grund für die <meta charset="">-Attributkombination ist, dass UAs sie bereits implementieren, weil viele dazu neigen, die Dinge folgendermaßen ohne Anführungszeichen anzugeben:


<META HTTP-EQUIV=Content-Type CONTENT=text/html; charset=ISO-8859-1>

Zusammengefasst: Die Sache mit der Zeichenkodierung ist eine komplizierte Angelegenheit, die durch Jahrzehnte schlecht geschriebener Software, die von Autoren verwendet wird, deren bevorzugte Arbeitstechnik immer noch Copy-and-Paste ist, nicht gerade vereinfacht wird. Sie sollten bei jedem HTML-Dokument grundsätzlich eine Zeichenkodierung angeben, da es andernfalls zu üblen Folgen kommen kann. Sie können das über den HTTP-Content-Type-Header, die <meta http-equiv>-Deklaration oder die kürzere <meta charset>-Deklaration tun. Aber vergessen Sie sie nicht. Das Web wird es Ihnen danken.


Kontakt

Email: Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!
Tel : 038305 / 529 799
Erstellt mit HTML5 und CSS3 - © 2024  HTML Lernen
  Zitate bei QuotientQuotables