| # Zeichenvorrat, Sonderzeichen und HTML-eigene Zeichen
| Allgemeines zu Zeichen in HTML Deutsche Umlaute und scharfes S Das Euro-Zeichen in HTML HTML-eigene Zeichen maskieren

## Allgemeines zu Zeichen in HTML

Wenn Sie Ihre Texte - sagen wir in deutscher Sprache - einfach in einen HTML-Editor eintippen, den Text mit Hilfe von HTML-Elementen strukturieren und sich das Ganze dann im Web-Browser anzeigen lassen, wird in der Regel der gesamte eingegebene Text korrekt angezeigt. Das klingt selbstverständlich - ist es aber nicht. In der HTML-Datei stehen nämlich nicht Ihre eingegebenen Buchstaben und anderen Zeichen, sondern nur Bytes, also letztlich Einsen und Nullen.

Beim Speichern der Buchstaben muss Ihr HTML-Editor nun einen bestimmten Algorithmus anwenden, um die Zeichen in Bytes umzuwandeln. Der Web-Browser muss dieselbe Methode rückwärts anwenden, um alle Zeichen im HTML-Dokument korrekt zu erkennen. Diese Methode wird Zeichenkodierung genannt. Es gibt viele verschiedene davon, z.B. speziell zur Speicherung von westeuropäischen, kyrillischen oder arabischen Zeichen. Genaueres über Zeichenkodierungen erfahren Sie im Kapitel Computer und geschriebene Sprache.

Eine solche Zeichenkodierung greift auf eine Übersetzungstabelle (Codetabelle) zurück, die jedem Zeichen, das verwendet werden kann, eine fortlaufende Nummer (einen Code) zuweist. So hat z.B. der lateinische Buchstabe "a" in der Unicode-Zeichentabelle die (dezimale) Nummer 97, "b" 98, "c" 99 und so weiter. Die Menge der Zeichen in einer solchen Tabelle wird Zeichenvorrat genannt.

Da unzählige Kodierungen für HTML-Dateien verwendet werden können, ist es unbedingt notwendig, dass der Browser diejenige Kodierung anwendet, mit welcher der Editor die HTML-Datei gespeichert hat. Sie sollten daher einen Editor verwenden, in dem Sie beim Speichern die Kodierung wählen können. Zudem sollte die HTML-Datei eine Angabe zur verwendeten Zeichenkodierung enthalten oder sie sollte zumindest durch den Webserver in der HTTP-Antwort übermittelt werden. Wenn eine solche Angabe fehlt, dann ist die HTML-Datei gemäß dem HTML-Standard fehlerhaft. Ein Web-Browser darf die verwendete Kodierung strenggenommen nicht "erraten".

Allerdings sind die Browser in diesem Punkt äußerst tolerant und greifen zumeist auf die voreingestellte Kodierung zurück. In Ihrem Browser, der wahrscheinlich eine englische oder deutschsprachige Benutzerführung hat, ist vermutlich ISO 8859-1 (Latin-1) eingestellt, die verbreitete Kodierung für westeuropäische Sprachen. Weil der Editor, den Sie beim Eintippen benutzen, vermutlich ebenfalls ISO 8859-1 beim Abspeichern verwendet, klappt scheinbar alles problemlos. Nun kann es aber, wenn Ihre Seiten im Web stehen, auch passieren, dass Besucher aus Osteuropa, Asien usw. vorbeikommen, deren Browser standardmäßig eine andere Kodierung annehmen. Solche Besucher werden dann lauter Zeichen aus der Codetabelle ihres eigenen, vertrauten Zeichencodes sehen - aber es wird ein wilder, sinnloser Zeichensalat sein.

HTML bietet Ihnen deshalb die Möglichkeit an, dem Browser mitzuteilen, welche Zeichenkodierung die Datei verwendet. Im Kopf einer HTML-Datei notieren Sie dazu in einem so genannten Meta-Tag eine Angabe zur Zeichenkodierung. Eine solche Angabe ist unbedingt zu empfehlen, da Sie dem Browser die Entscheidung leichter macht, wie die Bytes der HTML-Datei in Zeichen umzuwandeln sind. Dann liegt es am Browser, die von Ihnen gemeinten Zeichen auf dem Bildschirm beispielsweise eines Seitenbesuchers aus Fernost so anzuzeigen, wie Sie sie eingetippt haben.

Die verbreiteten ISO-Kodierungen arbeiten mit einem Zeichenvorrat von 256 Zeichen. Dies hat den Vorteil, dass ein Zeichen immer genau mit einem Byte dargestellt wird. Somit lassen sich mit solchen Kodierungen nur 256 unterschiedliche Zeichen speichern. Trotzdem ist der Zeichenvorrat von HTML - das heißt die Menge aller verwendbaren Zeichen, unabhängig von der Art, wie sie in Bytes gespeichert werden - nicht auf den Zeichenvorrat der verwendeten Kodierung beschränkt. In einem HTML-Dokument können grundsätzlich alle Zeichen aus Unicode verwendet werden. Fortschrittliche Kodierungen wie UTF-8 können alle Zeichen des Unicode-Standards direkt in Bytes bzw. Byteketten kodieren.

Wenn Sie im Text einzelne Zeichen eingeben wollen, die nicht im Zeichenvorrat der verwendeten Kodierung enthalten sind, können Sie zwischen zwei Möglichkeiten wählen: Entweder Sie verwenden eine spezielle numerische Notation. Für häufiger verwendete Sonderzeichen stellt HTML aber auch so genannte benannte Zeichen zur Verfügung. Für beide Möglichkeiten sollten Sie sich mit der HTML-Zeichenreferenz beschäftigen.

## Deutsche Umlaute und scharfes S

Wenn Sie Kodierungen wie ISO 8859-1 oder UTF-8 verwenden, können Sie die deutschen Umlaute direkt in Ihrem Editor eintippen. Sofern Sie die besagte Angabe zur Zeichenkodierung im Kopf der HTML-Datei notieren, können Sie davon ausgehen, dass aktuelle und auch ältere Browser die Datei korrekt verarbeiten.

Dennoch gibt es einige Sonderfälle, in denen es sinnvoll ist, sich auf die ASCII-Zeichen zu beschränken, um mögliche Probleme bei der Verarbeitung zu vermeiden. In diesem Fall können Sie deutsche Umlaute sowie das scharfe S durch benannte Zeichen umschreiben. Das gilt für den gesamten Inhalt einer HTML-Datei.

Zeichen | Ersetzung
--- | ---
`ä` | `&auml;`
`Ä` | `&Auml;`
`ö` | `&ouml;`
`Ö` | `&Ouml;`
`ü` | `&uuml;`
`Ü` | `&Uuml;`
`ß` | `&szlig;`

### Beispiel:

    In M&uuml;nchen steht ein Hofbr&auml;uhaus.
    Dort gibt es Bier aus Ma&szlig;kr&uuml;gen.

### Erläuterung:

Die deutschen Sonderzeichen werden durch die entsprechenden benannten Zeichen ersetzt. Auch wenn die Zeichenfolgen irritieren mögen - keine Sorge, die Web-Browser verstehen das und zeigen die Zeichen korrekt an.

### Beachten Sie:

Es gibt eine Menge weiterer Sonderzeichen, die durch solche Umschreibungen dargestellt werden sollten. Diese finden Sie in der HTML-Zeichenreferenz aufgelistet.

## Das Euro-Zeichen in HTML

Auch für das Euro-Zeichen gibt es ein benanntes Zeichen in HTML. Das Euro-Zeichen ist nicht im Zeichenvorrat von ISO 8859-1 enthalten, sodass Sie das benannte Zeichen an dessen Stelle nutzen müssen, wenn Sie diese Kodierung verwenden möchten.

### Beispiel:

    Preis: &euro; 199,-

### Erläuterung:

Notieren Sie an der Stelle, wo das Euro-Zeichen stehen soll, die Zeichenfolge `&euro;`.

### Beachten Sie:

Wenn Sie unter Microsoft Windows das Euro-Zeichen über die Tastenkombination `AltGr + e` in die HTML-Datei eintippen, sollten Sie vorsichtig sein. Einige Editoren nutzen standardmäßig die Kodierung Windows 1252. Diese gleicht ISO 8859-1 weitestgehend. Doch an der Stelle der Codetabelle, wo in ISO 8859-1 einige in HTML nicht verwendete Steuerzeichen liegen, liegen in Windows 1252 unter anderem typographische Anführungszeichen, Gedankenstriche und eben das Euro-Zeichen. Ein Browser, der Windows-1252-kodierte HTML-Dateien gemäß ISO 8859-1 verarbeitet, wird nämlich kein Euro-Zeichen anzeigen, sondern z.B. ein Fragezeichen oder ein kleines Quadrat. Denn an der Stelle des Euro-Zeichens in Windows 1252 liegt in der Codetabelle von ISO 8859-1 ein nicht druckbares Steuerzeichen.

Wenn Sie ISO 8859-1 verwenden wollen und Ihre HTML-Dateien eine entsprechende Angabe zu Kodierung enthalten, sollten Sie es daher vermeiden, das Euro-Zeichen direkt einzugeben. Verwenden Sie entweder beim Speichern eine Kodierung, in deren Zeichenvorrat das Euro-Zeichen vorkommt (z.B. UTF-8 oder ISO 8859-15), sowie einen Editor, der diese Kodierungen korrekt anwendet. Andernfalls können Sie einfach das oben beschriebene `&euro;` notieren. Eine weitere Alternative ist die numerische Notation. Im Unicode-Standard hat das Euro-Zeichen den Dezimalwert 8364 oder den Hexadezimalwert 20AC. In HTML können Sie das Euro-Zeichen demnach numerisch so referenzieren: `&#8364;` oder `&#x20AC;`.

## HTML-eigene Zeichen maskieren

Wenn in Ihrem Text Zeichen vorkommen, die in HTML eine bestimmte Bedeutung haben, müssen Sie diese Zeichen maskieren. Die folgenden Zeichen müssen Sie wie folgt maskieren:

Ersetzen Sie das Zeichen `&` durch die Zeichenfolge `&amp;` ("Ampersand")
Ersetzen Sie das Zeichen `<` durch die Zeichenfolge `&lt;` ("lower than")
Ersetzen Sie das Zeichen `>` durch die Zeichenfolge `&gt;` ("greater than")

Des Weiteren ist es ratsam, an bestimmten Stellen das Zeichen `"` durch die Zeichenfolge `&quot;` ("Quote") zu ersetzen. Dies ist vor allem in Attributwerten sinnvoll.

### Beispiel:

    Das ist ein &lt;HTML-Tag&gt;
    GmbH &amp; Co. KG
    <strong title="bekannt durch den Ausspruch &quot;Ich wei&szlig;, dass ich nichts wei&szlig;!&quot;">
    der griechische Philosoph Sokrates</strong>

### Erläuterung:

Ersetzen Sie die HTML-eigenen Zeichen wie im obigen Beispiel durch die entsprechenden Zeichenfolgen.

### Beachten Sie:

Am gefährlichsten ist die spitze öffnende Klammer (`<`). Wenn Sie dieses Zeichen nicht wie vorgeschrieben maskieren, bringen Sie den Web-Browser mit ziemlicher Sicherheit durcheinander, weil er glaubt, nun würde ein HTML-Tag folgen. Die anderen HTML-eigenen Zeichen führen zwar meistens nicht zu Anzeigefehlern, dennoch sollten Sie sie möglichst maskieren.

| Farben definieren in HTML
| Regeln beim Editieren von HTML

© 2007 Impressum