W3docs

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–Z und a–z, die Ziffern 0–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:

ZeichenEntity-NummerEntity-NameBeschreibung
"&#34;&quot;Anführungszeichen
'&#39;&apos;Apostroph
&&#38;&amp;Et-Zeichen
<&#60;&lt;Kleiner-als
>&#62;&gt;Größer-als

Die vollständige Referenz benannter Zeichenreferenzen finden Sie unter HTML Entities.

ISO 8859-1 Symbole

ZeichenEntity-NummerEntity-NameBeschreibung
 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

ZeichenEntity-NummerEntity-NameBeschreibung
ÀÀÀ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.

ZeichensatzBeschreibungAbgedeckte Sprachen
ISO-8859-1Latin 1Nordamerika, Westeuropa, Lateinamerika, Karibik, Kanada, Afrika.
ISO-8859-2Latin 2Osteuropa.
ISO-8859-3Latin 3Südosteuropa, Esperanto und andere.
ISO-8859-4Latin 4Skandinavien/Baltikum (und andere, die nicht in ISO-8859-1 enthalten sind).
ISO-8859-5Latin/KyrillischSprachen mit kyrillischem Alphabet, wie Bulgarisch, Belarussisch, Russisch und Mazedonisch.
ISO-8859-6Latin/ArabischSprachen mit arabischem Alphabet.
ISO-8859-7Latin/GriechischDie moderne griechische Sprache sowie mathematische Symbole griechischen Ursprungs.
ISO-8859-8Latin/HebräischSprachen mit hebräischem Alphabet.
ISO-8859-9Latin/TürkischDie türkische Sprache. Entspricht ISO-8859-1, jedoch werden isländische Zeichen durch türkische ersetzt.
ISO-8859-10Latin/NordischDie nordischen Sprachen.
ISO-8859-15Latin 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.

Übungsaufgabe

Übung
Was beschreibt die ISO-8859-1-Kodierung am besten?
Was beschreibt die ISO-8859-1-Kodierung am besten?
Was this page helpful?