| # 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 Satzzeichen, sondern Byte für Byte numerische Werte wie 75, 168 oder 32. Der Browser versucht nun herauszubekommen, nach welchem Zeichencode er diese numerischen Werte interpretieren soll. Ob beispielsweise nach einer westeuropäischen Codierung, einer kyrillischen oder einer arabischen. Wenn das Dokument keine Angabe zum Zeichencode enthält und keine durch das HTTP-Protokoll übermittelt wurde, dann verstößt der Dokument strenggenommen gegen den HTML-Standard. Der Browser dürfte den verwendeten Zeichencode nicht "erraten". Allerdings wird kein Browser Seiten nur deswegen nicht darstellen, weil ein solche Zeichencodeangabe fehlt. Im Zweifelsfall greifen die Browser daher auf den voreingestellten Zeichencode zurück. In Ihrem Browser, der wahrscheinlich eine englische oder deutschsprachige Benutzerführung hat, ist vermutlich Latin-1 (ISO 8859-1) eingestellt, der verbreitete Zeichencode für westeuropäische Sprachen.

Weil der HTML-Editor oder Texteditor, den Sie beim Eintippen benutzen, vermutlich ebenfalls diesen Zeichencode 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, die ganz andere Zeichncodes in ihren Web-Browsern voreingestellt haben. Solche Besucher werden dann lauter Zeichen ihres eigenen, vertrauten Zeichencodes sehen - aber es wird ein wilder Zeichensalat sein, dem man beim besten Willen keinen Sinn entnehmen kann.

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

Bei den meisten Zeichencodierungen entspricht ein Zeichen genau einem Byte-Wert. Somit lassen sich nur 256 unterschiedliche Zeichen mit einem solchen Zeichencode speichern. Trotzdem ist der Zeichenvorrat von HTML nicht auf den angegebenen Zeichencode beschränkt. Wenn Sie im Text einzelne Zeichen eingeben wollen, die vom Zeichensatz nicht abgedeckt werden, 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.

Falls Sie das Thema mit den numerischen Bytes und den Zeichensätzen vertiefen möchten, können Sie den Abschnitt Computer und geschriebene Sprache lesen.

### Beachten Sie:

In früheren Ausgaben von SELFHTML wurde die Bezeichnungen "Zeichensatz" sachlich falsch für die Codierung der Zeichen benutzt. In HTML wird nur ein einziger Zeichensatz benutzt: Unicode. Als Zeichensatz bezeichnet man die Sammlung von allen verwendbaren Zeichen, unabhängig von der Art, wie man deren Anzeige hervorruft. Der hier korrekt verwendete Begriff Zeichencode bezeichnet die Umsetzung eines konkreten, gewünschten Zeichens in eine vom Computer lesbare Zahldarstellung. Der Zeichencode beantwortet die Frage "Wenn ich ein A darstellen will, welche Bytes muss ich senden?". Der Zeichensatz definiert, dass überhaupt ein A existiert, dass man senden kann.

Trotzdem wird die Angabe zur Zeichencodierung im HTTP-Standard unter dem Namen `charset` (also Zeichensatz) mitgesendet - offenbar war man sich damals auch noch nicht so ganz über die Zusammenhänge im Klaren. Solche Fehler sind nur allzu menschlich.

## Deutsche Umlaute und scharfes S

Wenn Sie in Ihrer HTML-Datei sonst keine Angaben zum verwendeten Zeichencode machen, sollten Sie im Hinblick auf das Internet und die internationale Verwendung deutsche Umlaute und scharfes S durch spezielle, dafür vorgesehene benannte Zeichen ersetzen. Das gilt für den gesamten Inhalt einer HTML-Datei.

Ersetzen Sie das Zeichen `ä` durch die Zeichenfolge `&auml;`
Ersetzen Sie das Zeichen `Ä` durch die Zeichenfolge `&Auml;`
Ersetzen Sie das Zeichen `ö` durch die Zeichenfolge `&ouml;`
Ersetzen Sie das Zeichen `Ö` durch die Zeichenfolge `&Ouml;`
Ersetzen Sie das Zeichen `ü` durch die Zeichenfolge `&uuml;`
Ersetzen Sie das Zeichen `Ü` durch die Zeichenfolge `&Uuml;`
Ersetzen Sie das Zeichen `ß` durch die Zeichenfolge `&szlig;`

### Beispiel:

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

### Erläuterung:

Ersetzen Sie die deutschen Sonderzeichen wie im obigen Beispiel durch die entsprechenden Zeichenfolgen - 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 Eurozeichen gibt es ein benanntes Zeichen in HTML.

### Beispiel:

    Preis: &euro; 199,-

### Erläuterung:

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

### Beachten Sie:

Vermeiden Sie unter MS Windows, das Eurozeichen über die Tastatur erzeugt in HTML einzutippen (`[AltGr]+[e]`). Der Grund ist, dass Microsoft das Eurozeichen intern auf den Zeichenwert 128 gelegt hat, um es über Tastatur zugänglich zu machen und in vorhandene Schriftarten einzubauen. Das entspricht jedoch nicht dem Unicode/ISO-10646-Standard, auf dem HTML aufsetzt. Verwenden Sie in HTML deshalb das oben beschriebene `&euro;` oder als Alternative eine numerische Notation nach dem Unicode/ISO-10646-Standard. Dort hat das Eurozeichen den Hexadezimalwert 20AC oder den Dezimalwert 8364. Nach HTML 4.0 können Sie das Eurozeichen demnach numerisch so referenzieren: `&#x20AC;` oder `&#8364;`.

## 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")
Ersetzen Sie das Zeichen `"` durch die Zeichenfolge `&quot;` ("Quote")

### Beispiel:

    Das ist ein &lt;HTML-Tag&gt;
    GmbH &amp; Co. KG
    &quot;Text steht in Anf&uuml;hrungszeichen&quot;

### 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 drei zu maskierenden Zeichen führen zwar meistens nicht zu Anzeigefehlern, doch sollten Sie sie auch stets maskieren. Besonders bei normalen Anführungszeichen, die ja doch sehr oft zum Einsatz kommen, wird die Maskierung im Text oft vergessen.

| Farben definieren in HTML
| Regeln beim Editieren von HTML

© 2005 Impressum