Zeichenkodierung: Unterschied zwischen den Versionen
Zeile 27: | Zeile 27: | ||
Webseiten werden über das HyperText Transfer Protocol (HTTP) zur Anzeige bereitgestellt. Ein Browser sendet über HTTP eine Anfrage und der Server sendet die Antwort über HTTP zurück. Die Antwort besteht aus zwei Teilen: Dem HTTP-Header und dem Körper, die durch eine Leerzeile getrennt sind. Die Kopfzeichen enthalten die Informationen über den Körper (Inhalt). Der Körper besteht dann aus der angeforderten Ressource, in der Regel ein HTML-Dokument. Die Kodierungsinformationen für das Dokument werden vom Webserver im Content Type Header gesendet: | Webseiten werden über das HyperText Transfer Protocol (HTTP) zur Anzeige bereitgestellt. Ein Browser sendet über HTTP eine Anfrage und der Server sendet die Antwort über HTTP zurück. Die Antwort besteht aus zwei Teilen: Dem HTTP-Header und dem Körper, die durch eine Leerzeile getrennt sind. Die Kopfzeichen enthalten die Informationen über den Körper (Inhalt). Der Körper besteht dann aus der angeforderten Ressource, in der Regel ein HTML-Dokument. Die Kodierungsinformationen für das Dokument werden vom Webserver im Content Type Header gesendet: | ||
− | < | + | <pre>Content-Type: text/html; charset=utf-8</pre> |
=== Angabe im HTML-Markup === | === Angabe im HTML-Markup === | ||
Zeile 33: | Zeile 33: | ||
Wenn Sie das HTTP-Äquivalent in HTML bereitstellen möchten, können Sie dazu ein Meta-Element im HEAD-Abschnitt Ihres Dokuments verwenden: | Wenn Sie das HTTP-Äquivalent in HTML bereitstellen möchten, können Sie dazu ein Meta-Element im HEAD-Abschnitt Ihres Dokuments verwenden: | ||
− | < | + | <pre><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></pre> |
Alternativ können Sie auch folgendes Meta-Element angeben: | Alternativ können Sie auch folgendes Meta-Element angeben: | ||
− | < | + | <pre><meta charset="utf-8"></pre> |
Beispiel für die Angabe der Zeichensatzkodierung im HTML-Markup: | Beispiel für die Angabe der Zeichensatzkodierung im HTML-Markup: | ||
− | [[Datei:Zeichensatzkodierung | + | [[Datei:Zeichensatzkodierung im HTML Code.PNG|link=]] |
Screenshot mit Zeichensatzkodierung im HTML Code von [https://www.seobility.net/de/ seobility.net] | Screenshot mit Zeichensatzkodierung im HTML Code von [https://www.seobility.net/de/ seobility.net] | ||
Zeile 48: | Zeile 48: | ||
Beachten Sie jedoch, dass jeder echte HTTP-Header ein Meta-Element überschreibt, weshalb Sie den Webserver unbedingt korrekt einrichten müssen. Bei einem Apache-Server schreiben Sie in die Konfigurationsdatei: | Beachten Sie jedoch, dass jeder echte HTTP-Header ein Meta-Element überschreibt, weshalb Sie den Webserver unbedingt korrekt einrichten müssen. Bei einem Apache-Server schreiben Sie in die Konfigurationsdatei: | ||
− | < | + | <pre>AddDefaultCharset UTF-8</pre> |
Für Microsoft IIS muss diese Einstellung in zahlreichen Dialogfeldern vorhanden sein. | Für Microsoft IIS muss diese Einstellung in zahlreichen Dialogfeldern vorhanden sein. | ||
Zeile 54: | Zeile 54: | ||
Für XML sollte die Kodierung im Kopf der Datei angegeben werden. XML unterstützt nur UTF-8 und UTF-16, was die Auswahl stark vereinfacht: | Für XML sollte die Kodierung im Kopf der Datei angegeben werden. XML unterstützt nur UTF-8 und UTF-16, was die Auswahl stark vereinfacht: | ||
− | < | + | <pre><?xml version="1.0" encoding="utf-8"?/></pre> |
== Zusammenfassung == | == Zusammenfassung == |
Version vom 29. Oktober 2018, 12:13 Uhr
Inhaltsverzeichnis
Definition
Um Buchstaben, Ziffern und Symbole darzustellen, benötigt ein Computer eine Zeichenmenge, die Zeichenvorrat (engl. character repertoire) genannt wird. Für den Gebrauch in der Praxis ist diese Zeichenmenge in einer bestimmten Reihenfolge geordnet und nummeriert. Diese geordnete Zeichenmenge wird als Zeichensatz (engl. character set) bezeichnet. Damit der Computer die Zeichen richtig erkennt, werden diese außerdem durch ein Muster aus Bits beschrieben, welches die Zeichenkodierung bzw. Zeichensatzkodierung (engl. character encoding) darstellt. Da der Zeichensatz bereits eine bestimmte Reihenfolge und Nummerierung vorgibt, müssen die Bitmuster hierfür nur noch den Zeichen zugeordnet werden.
Die Zeichensatzkodierung kommt beispielsweise bei HTML-Dokumenten zum Einsatz, da diese mit einer bestimmten Zeichensatzkodierung gespeichert werden. Dadurch ist eine eindeutige Zuordnung von Buchstaben, Ziffern und Symbolen eines Zeichensatzes möglich. Die Information über die Form der Kodierung, die für diese Datei verwendet wurde, wird beim Öffnen an den Browser oder einen anderen Benutzeragenten gesendet, damit die Bits und Bytes richtig interpretiert werden können. Wenn die deklarierte Zeichenkodierung nicht mit der tatsächlich verwendeten übereinstimmt, kann der Browser den Inhalt der Webseite nicht richtig darstellen und auch Suchmaschinen können mit diesen Seiten nichts anfangen.
Warum unterschiedliche Zeichensätze notwendig sind
Die Auswahl einer Kodierung bestimmt den Bereich von Zeichen, die Sie auf einer Webseite verwenden können. Normale lateinische Buchstaben stellen dabei selten ein Problem dar, aber einige Sprachen benötigen mehr Buchstaben als andere oder verwenden Characters wie Punkte, Häkchen, Striche, Kreise oder Bögen oberhalb oder unterhalb der Buchstaben.
Dies kann schnell zu Problemen führen, wenn ein Schriftzeichen benötigt wird, das von der von Ihnen gewählten Kodierung nicht dargestellt werden kann. In diesem Fall müssen Sie auf eine symbolische Umschreibung (Entitätsreferenz) zurückgreifen. So stellt zum Beispiel die Entitätsreferenz © das Symbol © dar. Entitätsreferenzen beginnen mit einem "&" und enden mit einem Semikolon ";". Die Verwendung von Referenzen funktioniert zwar meistens relativ gut, das Verfahren benötigt jedoch mehr Bytes, erschwert das Markup und führt oft zu Schreibfehlern, weshalb deren Gebrauch auf ein Minimum beschränkt werden sollte.
Welche Kodierung sollten Sie wählen?
Für eine englischsprachige Webseite genügt der Zeichensatz US-ASCII, wenn Sie auf eine typografisch korrekte Zeichensetzung, wie zum Beispiel geschweifte Anführungszeichen, verzichten. Bei anderen europäischen Sprachen wie Deutsch, Französisch oder Spanisch, funktioniert der Zeichensatz ISO 8859-1 sehr gut, weshalb er zu einem De-facto Standard für Westeuropa geworden ist. Zeichensätze mit polnischen, tschechischen, kyrillischen oder griechischen Characters können eine andere Version aus ISO 8859 wählen. Selbst die Kodierung hebräischer, arabischer und orientalischer Zeichen auf einer Webseite stellt kein Problem dar, wenn die Zeichensatzkodierung UTF-8 ausgewählt wurde. Die Abkürzung steht für UCS Transformation Format - 8 Bit, wobei UCS wiederum die Abkürzung für Universal Character Set ist.
UTF-8 ist mittlerweile die am häufigsten verwendete Zeichenkodierung. Sie verwendet die Code-Tabelle des Unicode Systems, welches die Zeichen und Elemente aller bekannten Schriftkulturen enthält, die von Linguisten ermittelt wurden. Die Nummern der Zeichen werden bei Unicode durch eine zwei Byte große Zahl dargestellt. Auf diese Weise lassen sich bis zu 65536 Zeichen in dieser Tabelle unterbringen. Aus diesem Grund ist UTF-8 der im Internet am häufigsten verwendete Zeichensatz.
Im Grunde wäre es also sinnvoll, immer UTF-8 zu verwenden anstatt sich mit Entitäten herumschlagen zu müssen. Leider ist dies jedoch nicht immer möglich, denn nicht alle Editoren unterstützen UTF-8. Hinzu kommt, dass einige ältere Browser kein UTF-8 verstehen, wobei dieses Problem heute eher selten auftreten sollte.
Die Angabe der Zeichensatzkodierung im Dokument
Sobald Sie sich für eine Kodierung entschieden haben, müssen Sie sicherstellen, dass die richtigen Informationen an den Browser und an die Suchmaschine weitergegeben werden. In jedem HTML-Dokument ist die Angabe der verwendeten Zeichenkodierung Pflicht. Hierfür können Sie entweder den HTTP-Header oder das HTML-Markup nutzen.
Angabe im HTTP-Header
Webseiten werden über das HyperText Transfer Protocol (HTTP) zur Anzeige bereitgestellt. Ein Browser sendet über HTTP eine Anfrage und der Server sendet die Antwort über HTTP zurück. Die Antwort besteht aus zwei Teilen: Dem HTTP-Header und dem Körper, die durch eine Leerzeile getrennt sind. Die Kopfzeichen enthalten die Informationen über den Körper (Inhalt). Der Körper besteht dann aus der angeforderten Ressource, in der Regel ein HTML-Dokument. Die Kodierungsinformationen für das Dokument werden vom Webserver im Content Type Header gesendet:
Content-Type: text/html; charset=utf-8
Angabe im HTML-Markup
Wenn Sie das HTTP-Äquivalent in HTML bereitstellen möchten, können Sie dazu ein Meta-Element im HEAD-Abschnitt Ihres Dokuments verwenden:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Alternativ können Sie auch folgendes Meta-Element angeben:
<meta charset="utf-8">
Beispiel für die Angabe der Zeichensatzkodierung im HTML-Markup:
Screenshot mit Zeichensatzkodierung im HTML Code von seobility.net
Beachten Sie jedoch, dass jeder echte HTTP-Header ein Meta-Element überschreibt, weshalb Sie den Webserver unbedingt korrekt einrichten müssen. Bei einem Apache-Server schreiben Sie in die Konfigurationsdatei:
AddDefaultCharset UTF-8
Für Microsoft IIS muss diese Einstellung in zahlreichen Dialogfeldern vorhanden sein.
Für XML sollte die Kodierung im Kopf der Datei angegeben werden. XML unterstützt nur UTF-8 und UTF-16, was die Auswahl stark vereinfacht:
<?xml version="1.0" encoding="utf-8"?/>
Zusammenfassung
Für die richtige Darstellung eines HTML-Dokuments ist die Wahl der richtigen Zeichenkodierung unerlässlich. Wählen Sie einen Zeichensatz, der für Ihre Website ungeeignet ist, wie zum Beispiel ISO 8859-1 für eine chinesische Website, müssen Sie viele Entitäten verwenden, was die Dateigröße unnötig vergrößert.
Bei mehrsprachigen Websites sollten Sie deshalb unbedingt UTF-8 verwenden. UTF-8 und die ISO 8859er Serie werden von allen modernen Browsern unterstützt. Die meisten Browser unterstützen auch einige andere Kodierungen, aber wenn Sie sich für eine exotische Kodierung entscheiden, laufen Sie Gefahr, dass einige Besucher, darunter auch Suchmaschinen, Ihren Inhalt nicht lesen können.