ISO-8859-1
ISO-8859-1 (Latin-1) ist eine veraltete Einzelbyte-Zeichenkodierung. Erfahren Sie, wie sie 256 Codepunkte abbildet, warum Browser sie als Windows-1252 behandeln und mehr.
ISO-8859-1 (benannt nach der International Organization for Standardization, auch bekannt als Latin-1) ist eine veraltete Einzelbyte-Zeichenkodierung. Diese Seite erklärt, was sie ist, wo man ihr heute noch begegnet, wie Browser tatsächlich damit umgehen – und enthält die vollständige Zeichen- und Entitätsreferenz.
Beachten Sie, dass ISO-8859-1 nicht die Standardkodierung moderner Browser ist. Seit HTML5 ist der Standard-Zeichensatz UTF-8, den Sie für jedes neue Dokument verwenden sollten. ISO-8859-1 ist heute hauptsächlich dann relevant, wenn Sie ältere Seiten lesen oder pflegen.
Was ist ISO-8859-1
ISO-8859-1 ist eine Einzelbyte-Kodierung: Jedes Zeichen wird in genau einem Byte gespeichert, sodass maximal 256 Codepunkte dargestellt werden können, nummeriert von 0 bis 255. Diese 256 Positionen teilen sich in zwei Hälften auf:
- 0–127 — identisch mit ASCII. Die grundlegenden lateinischen Buchstaben
A–Zunda–z, die Ziffern0–9, Satzzeichen, das Leerzeichen und Steuerzeichen befinden sich hier. - 128–255 — das Latin-1-Supplement: Buchstaben mit Akzenten (à, é, ñ, ü) sowie Symbole wie ©, £, ¥, ½ und ÷. Diese decken die meisten westeuropäischen Sprachen ab.
Da ISO-8859-1 eine Einzelbyte-Kodierung ist, kann sie keine Zeichen außerhalb dieses Satzes darstellen – es gibt keine Möglichkeit, etwa das Euro-Zeichen €, Griechisch, Kyrillisch oder CJK-Schriftzeichen zu kodieren. Genau diese Einschränkung ist der Grund, warum das Mehrbyte-Format UTF-8 es abgelöst hat. Einen umfassenderen Überblick über Zeichenkodierungen finden Sie unter HTML Character Sets.
Historischer Kontext
In den 1990er und frühen 2000er Jahren war ISO-8859-1 die standardmäßige Fallback-Kodierung für HTTP und HTML im westlichen Web, weshalb sehr viele ältere Seiten damit erstellt wurden. Heute begegnet man ihr noch in alten HTML-Dateien, Datenbanken, E-Mail-Headern und HTTP-Antworten, die noch nicht auf UTF-8 migriert wurden. Das Erkennen dieser Kodierung hilft Ihnen, das klassische „Mojibake"-Problem zu debuggen, bei dem Zeichen mit Akzenten als kryptische Symbole dargestellt werden, weil die tatsächlichen Bytes einer Datei und die deklarierte Kodierung nicht übereinstimmen.
Das Windows-1252-Problem
Hier liegt die häufigste Quelle der Verwirrung. Gemäß dem WHATWG Encoding Standard dekodiert ein Browser ein Dokument, das als charset=ISO-8859-1 deklariert ist, nicht als echtes ISO-8859-1. Stattdessen dekodiert er es als Windows-1252.
Der Unterschied liegt im Bereich 128–159. Im echten ISO-8859-1 sind diese Positionen ungenutzte C1-Steuerzeichen. Windows-1252 nutzt diesen Bereich für druckbare Zeichen wie das Euro-Zeichen (€), geschwungene Anführungszeichen (" ", ' '), den Gedankenstrich (—) und das Markenzeichen (™). Da reale Webinhalte diese Windows-Zeichen häufig erwarteten, schreibt der Standard vor, dass ISO-8859-1 (und seine Aliasse latin1, iso8859-1 usw.) für die HTML-Dekodierung als Windows-1252 behandelt werden.
Die praktische Schlussfolgerung: Eine <meta charset="ISO-8859-1">-Deklaration und eine <meta charset="windows-1252">-Deklaration verhalten sich in Browsern identisch. Wenn Sie unsicher sind, welche Legacy-Kodierung eine Seite verwendet, liegt es meist daran, dass Zeichen im Bereich 128–159 trotzdem korrekt erscheinen.
Deklaration der Zeichenkodierung
Verwenden Sie <meta charset="UTF-8">, um die Kodierung Ihres HTML-Dokuments anzugeben, und platzieren Sie es im <head>-Abschnitt:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<!-- Your content here -->
</body>
</html>Die Platzierung ist wichtig. Der HTML-Standard verlangt, dass die <meta charset>-Deklaration innerhalb der ersten 1024 Bytes des Dokuments erscheint. Der Browser beginnt mit dem Lesen der Bytes, bevor er die Kodierung kennt, daher muss die Deklaration früh genug kommen, damit der Browser sie findet und den Rest der Seite korrekt interpretieren kann. Im obigen Beispiel steht <meta charset="UTF-8"> als allererstes Element im <head>, also komfortabel innerhalb dieses Fensters. Um stattdessen eine veraltete Kodierung anzugeben, würden Sie <meta charset="ISO-8859-1"> schreiben (was, wie oben erwähnt, vom Browser als Windows-1252 behandelt wird).
Reservierte Zeichen in HTML
Einige Zeichen sind in HTML reserviert, da sie zur Syntax der HTML-Sprache gehören. Beispielsweise können Sie die Größer-als- oder Kleiner-als-Zeichen nicht direkt im Text verwenden, da der Browser versucht, sie als HTML zu interpretieren. Verwenden Sie den Entity-Namen oder die Entity-Nummer, wenn Sie eines der reservierten Zeichen ausgeben möchten.
Die reservierten Zeichen sind in der folgenden Tabelle aufgelistet:
| Zeichen | Entity-Nummer | Entity-Name | Beschreibung |
|---|---|---|---|
| " | " | " | Anführungszeichen |
| ' | ' | ' | Apostroph |
| & | & | & | Et-Zeichen |
| < | < | < | Kleiner-als |
| > | > | > | Größer-als |
Die vollständige Referenz benannter Zeichenreferenzen finden Sie unter HTML Entities.
ISO 8859-1 Symbole
| Zeichen | Entity-Nummer | Entity-Name | Beschreibung |
|---|---|---|---|
| Geschütztes Leerzeichen | |||
| ¡ | ¡ | ¡ | Umgekehrtes Ausrufezeichen |
| ¢ | ¢ | ¢ | Cent |
| £ | £ | £ | Pfund |
| ¤ | ¤ | ¤ | Währung |
| ¥ | ¥ | ¥ | Yen |
| ¦ | ¦ | ¦ | Unterbrochener senkrechter Strich |
| § | § | § | Paragraf |
| ¨ | ¨ | ¨ | Trema |
| © | © | © | Copyright |
| ª | ª | ª | Feminines Ordinalzeichen |
| « | « | « | Anführungszeichen (links) |
| ¬ | ¬ | ¬ | Negationszeichen |
| | | | Weiches Trennzeichen |
| ® | ® | ® | Eingetragenes Warenzeichen |
| ¯ | ¯ | ¯ | Makron |
| ° | ° | ° | Grad |
| ± | ± | ± | Plus-minus |
| ² | ² | ² | Hochgestellte 2 |
| ³ | ³ | ³ | Hochgestellte 3 |
| ´ | ´ | ´ | Akut |
| µ | µ | µ | Mikro |
| ¶ | ¶ | ¶ | Absatzzeichen |
| · | · | · | Mittelpunkt |
| ¸ | ¸ | ¸ | Cedille |
| ¹ | ¹ | ¹ | Hochgestellte 1 |
| º | º | º | Maskulines Ordinalzeichen |
| » | » | » | Anführungszeichen (rechts) |
| ¼ | ¼ | ¼ | Bruch 1/4 |
| ½ | ½ | ½ | Bruch 1/2 |
| ¾ | ¾ | ¾ | Bruch 3/4 |
| ¿ | ¿ | ¿ | Umgekehrtes Fragezeichen |
| × | × | × | Multiplikation |
| ÷ | ÷ | ÷ | Division |
ISO 8859-1 Zeichen
| Zeichen | Entity-Nummer | Entity-Name | Beschreibung |
|---|---|---|---|
| À | À | À | Großes A, Gravis |
| Á | Á | Á | Großes A, Akut |
| Â | Â | Â | Großes A, Zirkumflex |
| Ã | Ã | Ã | Großes A, Tilde |
| Ä | Ä | Ä | Großes A, Umlaut |
| Å | Å | Å | Großes A, Ring |
| Æ | Æ | Æ | Großes AE |
| Ç | Ç | Ç | Großes C, Cedille |
| È | È | È | Großes E, Gravis |
| É | É | É | Großes E, Akut |
| Ê | Ê | Ê | Großes E, Zirkumflex |
| Ë | Ë | Ë | Großes E, Umlaut |
| Ì | Ì | Ì | Großes I, Gravis |
| Í | Í | Í | Großes I, Akut |
| Î | Î | Î | Großes I, Zirkumflex |
| Ï | Ï | Ï | Großes I, Umlaut |
| Ð | Ð | Ð | Großes Eth, Isländisch |
| Ñ | Ñ | Ñ | Großes N, Tilde |
| Ò | Ò | Ò | Großes O, Gravis |
| Ó | Ó | Ó | Großes O, Akut |
| Ô | Ô | Ô | Großes O, Zirkumflex |
| Õ | Õ | Õ | Großes O, Tilde |
| Ö | Ö | Ö | Großes O, Umlaut |
| Ø | Ø | Ø | Großes O, Schrägstrich |
| Ù | Ù | Ù | Großes U, Gravis |
| Ú | Ú | Ú | Großes U, Akut |
| Û | Û | Û | Großes U, Zirkumflex |
| Ü | Ü | Ü | Großes U, Umlaut |
| Ý | Ý | Ý | Großes Y, Akut |
| Þ | Þ | Þ | Großes THORN, Isländisch |
| ß | ß | ß | Kleines scharfes S, Deutsch |
| à | à | à | Kleines a, Gravis |
| á | á | á | Kleines a, Akut |
| â | â | â | Kleines a, Zirkumflex |
| ã | ã | ã | Kleines a, Tilde |
| ä | ä | ä | Kleines a, Umlaut |
| å | å | å | Kleines a, Ring |
| æ | æ | æ | Kleines ae |
| ç | ç | ç | Kleines c, Cedille |
| è | è | è | Kleines e, Gravis |
| é | é | é | Kleines e, Akut |
| ê | ê | ê | Kleines e, Zirkumflex |
| ë | ë | ë | Kleines e, Umlaut |
| ì | ì | ì | Kleines i, Gravis |
| í | í | í | Kleines i, Akut |
| î | î | î | Kleines i, Zirkumflex |
| ï | ï | ï | Kleines i, Umlaut |
| ð | ð | ð | Kleines eth, Isländisch |
| ñ | ñ | ñ | Kleines n, Tilde |
| ò | ò | ò | Kleines o, Gravis |
| ó | ó | ó | Kleines o, Akut |
| ô | ô | ô | Kleines o, Zirkumflex |
| õ | õ | õ | Kleines o, Tilde |
| ö | ö | ö | Kleines o, Umlaut |
| ø | ø | ø | Kleines o, Schrägstrich |
| ù | ù | ù | Kleines u, Gravis |
| ú | ú | ú | Kleines u, Akut |
| û | û | û | Kleines u, Zirkumflex |
| ü | ü | ü | Kleines u, Umlaut |
| ý | ý | ý | Kleines y, Akut |
| þ | þ | þ | Kleines thorn, Isländisch |
| ÿ | ÿ | ÿ | Kleines y, Umlaut |
Varianten von ISO-8859-1
ISO-8859-1 ist nur der erste Teil der größeren ISO 8859-Familie. Jeder Teil behält die untere ASCII-Hälfte (0–127), tauscht aber die obere Hälfte (128–255) aus, um eine andere Gruppe von Sprachen oder Schriften abzudecken. Die gebräuchlichsten Teile sind unten aufgelistet.
| Zeichensatz | Beschreibung | Abgedeckte Sprachen |
|---|---|---|
| ISO-8859-1 | Latin 1 | Nordamerika, Westeuropa, Lateinamerika, Karibik, Kanada, Afrika. |
| ISO-8859-2 | Latin 2 | Osteuropa. |
| ISO-8859-3 | Latin 3 | Südosteuropa, Esperanto und andere. |
| ISO-8859-4 | Latin 4 | Skandinavien/Baltikum (und andere, die nicht in ISO-8859-1 enthalten sind). |
| ISO-8859-5 | Latin/Kyrillisch | Sprachen mit kyrillischem Alphabet, wie Bulgarisch, Belarussisch, Russisch und Mazedonisch. |
| ISO-8859-6 | Latin/Arabisch | Sprachen mit arabischem Alphabet. |
| ISO-8859-7 | Latin/Griechisch | Die moderne griechische Sprache sowie mathematische Symbole griechischen Ursprungs. |
| ISO-8859-8 | Latin/Hebräisch | Sprachen mit hebräischem Alphabet. |
| ISO-8859-9 | Latin/Türkisch | Die türkische Sprache. Entspricht ISO-8859-1, jedoch werden isländische Zeichen durch türkische ersetzt. |
| ISO-8859-10 | Latin/Nordisch | Die nordischen Sprachen. |
| ISO-8859-15 | Latin 9 (Latin 0) | Ähnlich wie ISO-8859-1, ersetzt jedoch einige seltenere Symbole durch das Euro-Zeichen und andere fehlende Zeichen. |
Moderne Browser erkennen die Kodierung automatisch oder fallen auf UTF-8 zurück, wenn keine Kodierung angegeben ist. Legacy-Kodierungen wie ISO-8859-1 werden hauptsächlich aus Gründen der Abwärtskompatibilität mit älteren Webseiten unterstützt. Verwenden Sie für neue Projekte stets UTF-8, um vollständige Unicode-Unterstützung und plattformübergreifende Konsistenz zu gewährleisten.
Siehe auch HTML Character Sets, HTML ASCII und HTML Entities.