|
ISO-8859 definiert eine ganze Familie internationaler Standards für Zeichen-Codes. Jeder Code wird umfasst 8 Bit (1 Byte) und kann daher max. 256 Zeichen definieren. Diese Codes werden heute in der IT allgemein verwendet. |
Die erste Hälfte aller Codes (Zeichen 0..127) enthält den ASCII-Code als
konstante Untermenge. Die zweite Hälfte ist je nach Standard verschieden und ist so zusammengesetzt, dass damit jeweils ein möglichst großer Sprachraum erfasst wird. |
Zeichencodes
|
PC-Codes für Buchstaben, Ziffern und Sonderzeichen |
| ISO-8859 Live | Die populäre (aber überholte) europäische Lösung |
| Sonderzeichen | Die Codierung nationaler Sonderzeichen in Webseiten (ÄÖÜäöü߀...) |
| Geschichte | Geschichte, Bedeutung und Ausblick der ISO-8859 Familie |
| Code-Bereiche | Technische Details zu den verschiedenen Code-Bereichen |
| Latin-1 Update | Der Versuch einer Renovierung von ISO-8859-1 |
| Verwandte Themen | ASCII, HTML-Maskierung, Unicode |
| Links |
Ausgewählte
|
Sonderzeichen in Webseiten |
|
In Mitteleuropa werden die meisten Webseiten in ISO-8859 Code erstellt.
Das liegt weniger an den besonderen Vorteilen dieser Zeichensatz-Familie sondern an der
Ahnungslosigkeit der meisten WebDesigner. |
In dieser Variante wird zwar ein Zeichensatz ISO-8859 deklariert, jedoch nicht angewendet. |
UnicodeDieser Zeichensatz ist nicht auf bestimmte nationale sonderzeichen beschränkt, sondern für alle weltweit verwendeten Zeichen ausgelegt.Beispiel: Im <head> einer Webseite wird der Zeichensatz → Unicode in der platzsparenden Codierung UTF-8 deklariert:
<meta http-equiv="Content-Type" content="text/html;
charset=utf-8" />
Die nationalen Sonderzeichen können (optional) im HTML-Quelltext maskiert werden, z.B. so
<div>Eine große
grüne
Fläche</div>
▲
Diese Webseite wird auf jedem PC und Browser richtig angezeigt.
|
▲ Jedes halbwegs professionelle Web-Editor Programm lässt sich so einstellen, dass diese Variante verwendet wird. Damit wird (je nach Qualität des Programms) die unabsichtliche Verwendung nationaler Sonderzeichen im HTML-Quelltext zuverlässig verhindert. ● Die links vorgestellte Variante ist ein Kompromiss zwischen Lesbarkeit und platzsparender Codierung. Wenn man Sonderzeichen nicht maskiert sondern tatsächlich UTF-8 anwendet, dann braucht man dafür nur 2 Byte je Zeichen (die Maskierung links verwendet dafür 6-7 Byte). Der Quelltext ist dann jedoch mit einfachen Editor-Programmen nicht mehr lesbar. ♦ Details zu den Themen Unicode, UTF-8 |
Dieser Zeichensatz wird in Europa zu Unrecht nur selten verwendet. |
▲ Derartige Webseiten werden auf jedem PC und Browser richtig angezeigt. ▲ Man verwendet kompromisslos genau den angekündigten Zeichensatz. Dennoch können alle weltweit verwendeten Sonderzeichen in maskierter Form verwendet werden. ♣ Tipp: Verwenden sie im Quelltext von Webseiten niemals nationale Sonderzeichen wie äöüÄÖÜß sondern nur maskierte Zeichen. In diesem Fall ist die Deklaration des Zeichensatzes belanglos, da in Wirklichkeit nur charset=ascii verwendet wird und damit nur jene 128 Zeichen, die in allen Zeichensätzen identisch definiert sind. |
Die Codierung des € Zeichens birgt dank Microsoft eine
besondere Falle: Windows Betriebssysteme und -Software verwenden nicht
die Standard ISO-8859 Zeichensätze sondern leicht modifizierte eigene Versionen.
(Meist ohne Warnung auch dann, wenn ausdrücklich ISO-8859-1 deklariert wurde). |
Folge:
Bei Verwendung von M$ Software zur Herstellung einer Webseite kann
das € Zeichen (als Einzel-Byte mit dem Wert 128)
unbemerkt in den HTML Quellcode gelangen. Bei Verwendung des M$IE Browsers auf einem
deutschen Win-Betriebssystem fällt der Fehler nicht auf.Auf allen anderen Betriebssystemen, mit anderen Browsern und in anderen Ländern ist das Aussehen des Zeichens unbestimmt ! Lösung:
Verwenden sie im HTML-Quelltext unbedingt eine dieser beiden Maskierungen für
das Euro-Zeichen:€ €
Nur damit wird garantiert auf jedem Browser das Standard
Unicode-Zeichen € angezeigt.Kontrollieren sie, ob ihre Webseiten so codiert werden ! |
EntwicklungHTML- Dokumente werden ebenso wie andere Text-Dateien (CSS, Javascript, ...) und Script-Programme (Perl, PHP, Python...) am besten halb- oder vollautomatisch verwaltet.Man kann sie z.B. automatisch auf die Sonderzeichen ÄÖÜäöüß durchsuchen lassen. |
Das funktioniert allerdings nur dann, wenn auch die Kommentare keine Sonderzeichen enthalten ! ♣ Tipp: Verwenden sie in Kommentaren keine Sonderzeichen. International üblich sind ohnehin nur Kommentare in einfachem Englisch. ♣ Ausnahme: → UTF-codierte Dateien können auch Zeichen mit Codes>127 enthalten ! |
ISO-8859 - Geschichte und Zukunft |
|
|
ISO-8859 definiert eine Reihe internationaler Standards für Zeichen-Codes.
Jeder Code wird umfasst 8 Bit (1 Byte) und kann daher max. 256 Zeichen definieren. Diese Codes werden derzeit (!) in der IT häufig verwendet. Allerdings werden sie in allen neueren Entwicklungen von → Unicode abgelöst. |
Die erste Hälfte aller Codes (Zeichen 0..127)
enthält den →
ASCII-Code als konstante Untermenge. Die zweite Hälfte (Zeichen 128..255) wurde so zusammengesetzt, dass jeder Code einen möglichst großen Sprachraum erfasst. Deshalb sind einige Zeichen in mehreren Codes enthalten. |
| ISO-8859 wurde von der ECMA (European Computer Manufacturers Association) entwickelt und von der ISO (International Standards Organisation) definiert. Diese Standard-Familie wurde vorwiegend für den europäischen Bedarf entwickelt. Sie erfasst daher weit mehr Sprachen als der US-ASCII-Code, schließt aber immer noch alle Kulturen aus, die Sprachen mit mehr als 96 eigenen Zeichen verwenden. | Die einzelnen Codes der ISO-8859-Familie werden durch eine nachgestellte Zahl unterschieden, z.B. ISO-8859-1 (siehe oben) |
|
● Das gilt allerdings nicht für die internen Bereiche der IT (z.B. Quellcode), wo sinnvoll auch weiterhin nur der 7-Bit ASCII-Code verwendet wird. |
Das ist in einer globalisierten Welt nicht haltbar, vor allem nicht innerhalb der multi-sprachlichen EU. ● Alle neuen Entwicklungen ersetzen daher ISO-8859 durch → Unicode bzw. → UTF. |
|
M$ verwendet diese Codes in → Windows-1252 als druckbare Zeichen. Diese nicht Standard-konforme Sonderlösung ist die Ursache zahlreicher Fehler und Probleme mit Zeichensätzen. |
|
ISO-8859 - Technische Details |
|
| ● Der Bereich 0..31 (#00..1F) ist in allen verwendeten Zeichen-Codes gleich: → ASCII, alle Zeichensätze der ISO-8859 Familie, → Unicode U0000 (Controls and Basic Latin). |
Er enthält 32 nicht druckbare Steuerzeichen 0..31 (#00..1F) Besondere Bedeutung haben diese Zeichen (die auch in jedem HTML-Quelltext vorkommen dürfen: HT (Code 9, Tabulator, TAB), LF (Code 10. = #0A, LineFeed), CR (Code 13. = #0D, CarriageReturn). |
| ● Der Bereich 32..127 (#20..7F) ist ebenfalls in allen verwendeten Zeichen-Codes gleich: → ASCII, alle Zeichensätze der ISO-8859 Familie, → Unicode U0000 (Controls and Basic Latin). |
Er enthält mit 2 Ausnahmen nur druckbare Zeichen, z.B. 0..9,
A..Z, a..Z, alle lateinischen Interpunktionen wie !"*+,-./:;?,
alle Klammern ([{< >}]) und einige Sonderzeichen
wie #$%&@\_| Nicht druckbar (je nach Interpretation) sind das erste und das letzte Zeichen dieses Bereichs: Das Leerzeichen (Code 32=#20) und das Lösch-Zeichen DEL (delete), Code 127.=#7F |
| ● Der Bereich 128..159 (#80..#9F) enthält in den Standard Zeichensätzen 32 nicht druckbare Steuerzeichen, die allerdings kaum verwendet werden. |
M$ verwendet diesen Bereich in seinem Zeichensatz
→ Windows-1252 als druckbare Zeichen. Diese Sonderlösung ist die
Ursache zahlreicher Fehler und Probleme mit Zeichensätzen. Zeichensatz ISO-8859-1
ist daher nicht identisch mit Windows-1252 ! Verwenden sie keinesfalls diese Zeichen zur Codierung von Text, z.B. Code 128 (#80) für das €-Zeichen. Alle Zeichen dieses Bereichs sollten Unicode codiert werden, z.B. U+20AC für das €-Zeichen. Diese Codierung funktioniert mit jeder Software (auch von M$) problemlos und fehlerfrei. |
|
●
Der Bereich
160..255 (#A0..#FF) enthält 96 druckbare Zeichen,
und zwar unterschiedliche je nach ISO-Zeichensatz. Benannte Sonderzeichen: NBSP (160. = #A0) . . geschütztes Leerzeichen (non-breaking space) SHY (173. = #AD) . . optionale Silbentrennung (soft hyphen) |
Basis ist der Zeichensatz ISO-8859-1, identisch mit
→ Unicode U0080 (Latin-1 Supplement) und identisch in diesem Code-Bereich mit
→ Windows-1252. Die anderen Mitglieder der ISO-8859 Familie enthalten hier teilweise andere Zeichen. (↑ Live-Beispiele oben). Ein HTML-Dokument ist komplett in einem bestimmten Zeichensatz abgefasst, ein Wechsel innerhalb von Dokumenten nicht vorgesehen. Daher ist es unmöglich, Zeichen verschiedener ISO-8859 Zeichensätze zu mischen. Nur bei Verwendung von → Unicode oder mit → HTML-Maskierung können alle Zeichen verwendet und miteinander gemischt werden. |
|
●
ISO-8859-1 (Latin-1) Dieses Mitglied der ISO-8859 Familie ist in Mitteleuropa am weitesten verbreitet. Die wichtigsten im deutschen Sprachraum verwendeten Sonderzeichen äöüÄÖÜß sind darin codiert. Dieser Standard wurde 1987 von der ECMA definiert. |
Seit der explosionsartigen Verbreitung des Internet geht die Verwendung der in ISO-8859-1
nicht enthaltenen Zeichen stark zurück, wie z.B. in Deutsch
die speziellen Anführungszeichen „ “ . Der Zeichensatz IBM-819 (CCSID 819) dürfte identisch mit 'Latin-1' sein (keine Gewähr !). |
● HTML-Dokumente:Der Zeichensatz einer Webseite wird so festgelegt wie im Beispiel rechts gezeigt. |
HTML:
<meta http-equiv="Content-Type"
content="
text/html; charset=iso-8859-1">
|
| Im Gegensatz zu den meisten anderen Code-Tabellen enthält diese Webseite 'echte' Zeichen und keine Grafik. Deshalb lassen sich sämtliche angezeigten Zeichen kopieren und in andere Programme einsetzen. | Darüber hinaus lassen sich Tabellen automatisch erstellen (z.B. mit PHP) und benötigen damit viel Speicherplatz wie typische Zeichensatz-Grafiken. |
|
|
IANA -
Internet Assigned Numbers Authority:
Character Sets
SelfHTML:
Zeichensatz
(ISO-8859-Familie)
|
Wikipedia:
ISO-8859,
ISO-8859-1,
Sonderzeichen,
Punycode, http://homepages.cwi.nl/~dik/english/codes/8859.html |