Über die Verwendung von Sonderzeichen im Internet
Inhalt
- Was sind Sonderzeichen?
- Was ist ein Zeichensatz?
- Der Unterschied zwischen Schriftzeichen (character) und Glyphe (glyphe)
- Der "American Standard Code for Information Interchange" (ASCII)
- "extended ASCII": Erweiterte Zeichensätze
Der "Extended Binary Coded Decimal Interchange Code" (EBCDIC)
Der ANSI-Zeichensatz
ISO Latin-1 - Unicode
UCS 2 (UTF-16)
UTF-8
UCS 4
Die verschiedenen Unicode-Versionen - Unicode im Internet
- Links zum Thema Sonderzeichen und Unicode
Was sind Sonderzeichen?
Im Zusammenhang dieses Aufsatzes werden unter Sonderzeichen alle druck- und darstellbaren alphanummerischen Schriftzeichen (also Zahlen, Buchstaben und Satzzeichen) verstanden, die in den Sprachen verwendet werden, die im lateinischen Alphabet geschrieben werden, sofern diese alphanummerischen Zeichen nicht zum "American Standard Code for Information Interchange" (ASCII) gehören.
Zu den Sonderzeichen in diesem Verständnis zählen insbesondere die diakritischen Zeichen. Unter "diakritischen Zeichen" versteht man Zusatzzeichen zu einem Buchstaben, die Aussprache oder Betonung näher bezeichnen. Ein Diakritikum (von Griech.: "diakritikós"; Dt.: "unterscheidend") ist ein Zusatz (wie Strich, Punkt, Wellenlinie oder Häkchen), der in, über, durch oder unter einen Buchstaben gesetzt wird, um dessen Aussprache oder Betonung näher zu bezeichnen. So zählen etwa die im Französischen verwendeten Akzente, die Punkte über deutschen Umlauten oder die im Spanischen Benutzte Tilde zu den diakritischen Zeichen. Diakritische Zeichen sind im ASCII nicht enthalten.
Sonderzeichen sind, vereinfachend gesagt, alle Textzeichen, die nicht zum ASCII gehören. Sonderzeichen im engeren Sinne sind die Textzeichen, die nicht zu ISO Latin-1 gehören.
Was ist ein Zeichensatz?
Ein Zeichensatz ist eine festgelegte Menge von Zeichen (Buchstaben, Ziffern, Satz- und Sonderzeichen sowie Steuerungszeichen), also eine Gruppierung von alphabetischen, numerischen und anderen Zeichen mit gemeinsamen Merkmalen. Die Bezeichnung "Zeichensatz" wird auf unterschiedliche Arten von Zeichen-Sets angewendet, nämlich auf:
- Alphabete (und andere Schriftzeichensysteme; im Unicode als "Scripte" bezeichnet),
- Fonts (Schrifttypen, Schriftschnitte) und
- Zeichenkodierungsschemata (Engl.: "Character Encoding Scheme"; CES).
Hier wird der Ausdruck "Zeichensatz" im Sinne von "Zeichenkodierungsschema" (Engl.: "Character Encoding Scheme"; CES) verwendet, sofern sich aus dem Zusammenhang nicht eine andere Verwendung ergibt. Ein Zeichensatz in diesem Sinne ist eine genormte Zuordnungsregel, die die Darstellung von Textzeichen in Form von binären Zahlen (Byte-Werten) ermöglicht, indem sie festlegt, welcher Byte-Wert als welches Zeichen dargestellt wird. Zeichensätze sind also im Wesentlichen Tabellen, die einem Textzeichen einen Byte-Wert zuordnen. Zeichencodierungen dienen dazu, Byte-Werte in lesbare Zeichen zu übersetzen, die sich zum Beispiel auf dem Bildschirm darstellen lassen. Für diese Zuordnung von Byte-Werten zu Textzeichen gibt es zahlreiche unterschiedliche, miteinander meist unvereinbare Konventionen. Es gibt also verschiedene miteinander inkompatible Zeichensätze.
Ein Zeichensatz (CES) definiert also einen Byte-Wert für jedes Textzeichen, löst jedoch nicht das Problem, wie diese Zeichen an einem Computer dargestellt werden können; denn er enthält keine Angaben darüber, wie das Zeichen zum Beispiel auf dem Bildschirm oder im Druck darzustellen ist. Für Bildschirmdarstellung und Druck des Zeichens müssen auf dem Computer die entsprechenden Schriftarten (Fonts) vorhanden sein, um den Byte-Wert in eine Glyphe umsetzen zu können. Fonts sind Beschreibungen von Schriftzeichen zum Zwecke ihrer Abbildung auf Ausgabegeräten wie Bildschirm oder Drucker. Ein Font ist also ein vollständiger Satz von Buchstaben, Ziffern, Satz- und Sonderzeichen in einer Schriftart und in einer Schriftgröße. Das einzelne Zeichen kann als Pixelgrafik (Bitmap) oder als Vektorgrafik vorliegen. Nur Schriftarten, die in vektorieller Darstellung vorliegen, können frei skaliert (vergrößert oder verkleinert) werden.
Der Unterschied zwischen Schriftzeichen (character) und Glyphe (glyphe)
Schriftzeichen (Engl.: "character") sind die kleinsten semantischen Einheiten eines Textes, zum Beispiel Buchstaben, Ziffern, Satzzeichen, Diakritika. Eine Glyphe ist die graphische Darstellung eines solchen Textzeichens. So sind etwa a, a, a drei verschiedene Glyphen für den gleichen Buchstaben. Umgekehrt kann - im Falle einer Ligatur - auch dieselbe Glyphe aus mehreren verschiedenen Buchstaben bestehen, zum Beispiel besteht die Glyphe Œ aus den Buchstaben O und E, die Ligatur æ besteht aus den Buchstaben a und e und so weiter. Ein Textzeichen (character) ist also eine semantische Text-Einheit, eine Glyphe ist hingegen eine graphische Text-Einheit. Der "Character" bleibt unabhängig vom Stil seiner graphischen Darstellung immer der gleiche, wohingegen die Glyphe sich je nach Schriftart (zum Beispiel "Times Roman", "Arial", "Garamond") und Schriftschnitt (zum Beispiel kursiv, fett, halbfett, Kapitälchen) verändert.
In einem Zeichensatz (Engl.: "Character Encoding Scheme") werden Textzeichen einem bestimmten, jeweils einmaligen Byte-Wert zugeordnet. Zeichensätze sind also Tabellen, in denen jedem Textzeichen eine eindeutige Zahl zugeordnet ist, zum Beispiel dem A der Wert 65. Damit sind die Textzeichen zwar definiert (kodiert), aber noch nicht darstellbar. Für die Darstellung der Textzeichen eines Zeichensatzes ("Character Encoding Scheme") benötigt man eine Schrift ("Typeface", "Font"), also einen Vorrat von graphischen Zeichen. Eine Schrift (ein Font) ist die Zuordnung von Schriftzeichen (characters) zu graphischen Symbolen (glyphes).
Der "American Standard Code for Information Interchange" (ASCII)
Der Zeichensatz, der im Internet seit seiner Entstehung und bis heute
am meisten verwendet wird - und leider der einzige Zeichensatz, der in Client-Server-Systemen
zuverlässig funktioniert - ist der "American Standard Code for Information
Interchange" (ASCII; Dt.: "Amerikanischer Standard-Code für den Informationsaustausch").
Der ASCII ist ein Standardverfahren zur Kodierung alphabetischer und
numerischer Schriftzeichen sowie von Steuerzeichen. Für jedes Zeichen gibt
es einen eindeutigen Zahlen-Code. So trägt zum Beispiel die Ziffer 1 die
Nummer 49, das große A die Nummer 65.
Im ASCII wird jedes Zeichen mit einem Byte kodiert. Da jedes Byte aus acht
Bit besteht und jedes Bit zwei mögliche Zustände hat, sind theoretisch 2
hoch 8, also 256 verschiedene Zeichen möglich. Tatsächlich belegt jedes ASCII-Zeichen
jedoch nur die ersten sieben der acht Bit eines jeden Bytes. Im ASCII sind
daher nur 2 hoch 7, also 128 Zeichen möglich. Der ASCII ist also ein 7 Bit-Code
für die Darstellung von insgesamt bis zu 128 Zeichen des lateinischen Alphabets
- Buchstaben, Ziffern, Sonder- und Steuerzeichen.
Die ersten 32 Zeichen des ASCII werden als Kontrollzeichen benutzt, etwa
für die Steuerung von Druckern. Diese Zeichen sind nicht anzeig- oder druckbar.
Die deutschen Sonderzeichen (wie Umlaute und das ß) sind nicht Teil des ASCII.
Auch die Sonderzeichen anderer europäischer Länder sind nicht im ASCII enthalten.
Die meisten Datenübertragungsverfahren (Protokolle) im Internet basieren
auf dem ASCII. In der Telekommunikation per E-Mail ist es daher auch heute
noch unüblich, Sonderzeichen zu verwenden, da sie von anderen Systemen unter
Umständen falsch interpretiert werden und dann zu Zeichenkauderwelsch beim
Empfänger führen. Es gibt zwar verschiedene, durchaus zuverlässige Verfahren,
um Sonderzeichen in ASCII-Zeichen umzukodieren und dann zu übertragen ("Multipurpose
Internet Mail Extensions", "Quoted Printable"), aber man sollte sich nicht
darauf verlassen, dass beim Empfänger einer Mail das De-Kodierungsverfahren
zur Verfügung steht, das zum Kodierungsverfahren des Absenders passt - und
nur unter dieser Bedingung kommen Nicht-ASCII-Zeichen korrekt beim Empfänger
an.
Aus ähnlichen Gründen sollten in Web-Seiten nicht zum ASCII gehörende Sonderzeichen
in ASCII-Zeichen umkodiert (maskiert) werden.
"extended ASCII": Erweiterte Zeichensätze
Um den Unzulänglichkeiten des ASCII hinsichtlich der nationalen Sonderzeichen abzuhelfen, wurden im Laufe der Zeit mehrere verschiedene, untereinander inkompatible, erweiterte Zeichensätze geschaffen, die unter der Sammelbezeichnung "extended ASCII" (erweiterter ASCII) zusammengefasst werden. Sie haben gemeinsam, dass sie zur Kodierung jedes Zeichens alle acht Bit eines Bytes verwenden, so dass sie 256 Zeichen umfassen können. Sie werden daher als 8 Bit-Zeichensätze bezeichnet.
Der "Extended Binary Coded Decimal Interchange Code" (EBCDIC)
Eine Sonderrolle unter den 8 Bit-Zeichensätzen nimmt der "Extended Binary
Coded Decimal Interchange Code" (EBCDIC; Dt. etwa: "Erweiterter, binär codierter,
dezimaler Austausch-Code") ein.Dabei handelt es sich um einen vom Büromaschinenhersteller
IBM entwickelten Zeichensatz für Buchstaben, Zahlen, Satz-, Sonder- und Steuerungszeichen.
Der EBCDIC wird vor allem auf Großrechnern (Mainframes) von IBM verwendet.
Der EBCDIC ist zwar, wie gesagt, ein 8 Bit-Zeichensatz, aber von den rechnerisch
möglichen 256 Zeichen sind 96 nicht definiert. Der EBCDIC enthält keine Sonderzeichen,
ebensowenig wie der ASCII.
EBCDIC und ASCII sind untereinander unvereinbar (inkompatibel). Zum Beispiel
sind im EBCDIC zuerst die Buchstaben, dann die Ziffern codiert, beim ASCII
umgekehrt erst die Ziffern und dann die Buchstaben. Daher ist beim Datenaustausch
zwischen ASCII- und EBCDIC-Systemen eine Code-Umsetzung erforderlich.
Heute spielt der EBCDIC nur noch in einigen Großrechenanlagen (Mainframe-Terminal-Systemen)
eine Rolle; im Bereich der "Personal Computers" (PCs) wurde er durch den
ANSI-Zeichensatz ersetzt.
Der ANSI-Zeichensatz
Der ANSI-Zeichensatz ist ein genormter Satz von alphanumerischen Zeichen
und Steuerzeichen, der in der Datenübertragung und Computer-Technik weit
verbreitet ist. Er wird in den Windows-Betriebssystemen von Microsoft (bis
einschließlich Windows 98) sowie im Amiga verwendet. Dieser Zeichensatz wurde
vom "American National Standard Institute" (ANSI; Dt. etwa: "Amerikanisches
Institut für nationale Standards") festgelegt. Dieses US-amerikanische Normungsgremium
ist vergleichbar mit dem Deutschen Institut für Normung (DIN) und vertritt
die USA bei der "International Standards Organization" (ISO).
Der ANSI-Zeichensatz trägt die offiziellen Bezeichnung ISO 6937/2. Dieser
Zeichensatz enthält 256 fortlaufend (von 0 bis 255) durchnummerierte Zeichen.
Zur Kodierung jedes Zeichens wird ein Byte verwendet, so dass rechnerisch
256 Zeichen (2 hoch 8) möglich sind, von denen allerdings 60 nicht definiert
(vakant) sind. Auch der ANSI-Zeichensatz ist also ein 8 Bit-Zeichensatz.
Der ANSI-Zeichensatz stimmt in den Zeichen Nummer 32 bis 127 mit dem ASCII
überein, ist also sozusagen abwärtskompatibel. Der ANSI-Zeichensatz geht
jedoch über den ASCII hinaus; er enthält auch Sonderzeichen, etwa die Umlaute.
Der ANSI-Zeichensatz wird daher auch als "extended ASCII" (Dt.: "erweiterter
ASCII") bezeichnet.
Die ersten 32 Zeichen des ANSI-Zeichensatzes (mit den Nummern 0 bis 31) sind
Steuerbefehle (Engl.: "Control Characters"); es handelt sich dabei um nicht
druck- oder darstellbare Zeichen. Die alphanummerischen Zeichen mit den Nummern
33 bis 127 stimmen, wie gesagt, zwischen ANSI-Zeichensatz und ASCII überein.
Die ANSI-Zeichen mit den Nummern 128 bis 159 sind nicht definiert (vakant).
Die ANSI-Zeichen mit den Nummern 160 bis 255 stimmen mit den des Unicode
UCS-2-Skript "C1 Controls and Latin 1 Supplement" überein.
ANSI-Zeichensatz und EBCDIC sind zueinander inkompatibel.
ISO Latin-1
Die internationale Organisation für Normen (ISO) unternahm in den 1980er
Jahren den Versuch, den Wildwuchs bei den 8 Bit-Zeichensätzen durch ihre
Serie von ISO-8859-Standards zu beschränken. Weit verbreitet ist der Zeichensatz
ISO 8859-1, der auch als ISO Latin-1 bekannt ist. Er umfasst die Textzeichen
der meisten nord- und west-europäischen Sprachen. Dieser Zeichensatz umfasst
also neben den lateinischen Buchstaben, den arabischen Ziffern und zahlreichen
Interpunktionszeichen auch die meisten der in den romanischen und germanischen
Sprachen gebräuchlichen Sonderzeichen. Allerdings ist der Zeichenvorrat nicht
nach Sprachfamilien zwischen ISO Latin-1 und ISO Latin-2 aufgeteilt, sondern
nach der politischen Geographie des Kalten Krieges. So sind zum Beispiel
die Sonderzeichen für Rumänisch nicht in demselben Zeichensatz enthalten
wie die anderer romanischer Sprachen, etwa Spanisch (Castellano), Portugiesisch
oder Italienisch.
In den ersten 128 Zeichen stimmt ISO Latin-1 mit dem "American Standard Code
for Information Interchange" (ASCII) überein, ist also abwärtskompatibel.
Während der Zeichensatz "ISO Latin-1" (ISO 8859-1) die in den west-europäischen
Sprachen gebräuchlichen Buchstaben und Sonderzeichen umfasst, stellt "ISO
Latin-2" (ISO 8859-2) die Buchstaben und diakritischen Zeichen für ost-europäische
Sprachen zur Verfügung, die mit lateinischen Buchstaben geschrieben werden.
Für europäische Sprachen wie Russisch, Serbisch, Bulgarisch und Griechisch,
die nicht in lateinischer Schrift geschrieben werden, hat die ISO eigene
Zeichensätze festgelegt.
Unicode
Wenn auch die 8 Bit-Zeichensätze die Kodierung von doppelt so vielen Zeichen ermöglichen wie der 7 Bit-ASCII, so genügen doch die möglichen 256 verschiedenen Zeichen allenfalls für die Kodierung der Sprachen, die im lateinischen Alphabet geschrieben werden, nicht aber für die Sprachen, die in anderen Alphabeten geschrieben werden, etwa dem griechischen, kyrillischen, arabischen, hebräischen oder thailändischen - von den Silben- und Piktogrammschriften wie Chinesisch (Kanjii) und Japanisch (Hiragana, Katakana) ganz zu schweigen. Deshalb wurden Zeichensätze eingeführt, die mehr als ein Byte für die Kodierung jedes Textzeichens verwenden. In den Zeichensätzen, die zwei Byte (16 Bit) zur Darstellung ihrer Zeichen nutzen, können immerhin 65.536 verschiedene Zeichen kodiert werden. Man bezeichnet sie als "Double Byte Character Set" (DBCS; Dt.: "Doppel-Byte-Zeichensatz").
Einen Versuch, alle gebräuchlichen Schriftsysteme in einem Zeichensatz darstellbar zu machen, stellt der Unicode dar. Unicode (Dt. etwa: "Einheitsschlüssel") ist ein alphanumerischer Zeichensatz (CES), der weltweit alle bekannten Textzeichen (Buchstaben, Silbenzeichen, Piktogramme, Ideogramme, Satzzeichen, Sonderzeichen, Ziffern) zusammenfasst, also nicht nur die Buchstaben des lateinischen Alphabets, sondern etwa auch das griechische, kyrillische, arabische, hebräische, thailändische Alphabet und die verschiedenen japanischen (Katakana, Hiragana), chinesischen (Kanji) und koreanischen Schriften (Hangul). Außerdem können mathematische, kaufmännische und technische Sonderzeichen im Unicode kodiert werden. Das in Kalifornien ansässige "Unicode Consortium" hat den Unicode-Standard im Jahr 1991 veröffentlicht. Unicode ist im Jahre 1996 von der "International Organization for Standardization" (ISO) als ISO 10646 angenommen worden.
UCS 2 (UTF-16)
Der Unicode-Zeichensatz ist in mehrere Ebenen (Engl.: "Planes") unterteilt.
Normalerweise wird nur die unterste Ebene verwendet, die "Basic Multilingual
Plane" (BMP; Dt.: "Grundlegende mehrsprachige Ebene"). Während auf den höheren
Ebenen des Unicode vier Byte für die Kodierung jedes Zeichens verwendet werden,
werden auf der "Basic Multilingual Plane" zwei Byte (16 Bit) zur Kodierung
jedes Zeichens verwendet; auf der "Basic Multilingual Plane" sind also 65.536
Zeichen möglich. Die Kodierung für Unicode-Zeichen der "Basic Multilingual
Plane" wird als "Universal Character Set 2" (UCS-2; Dt.: "Universelle Schriftzeichen-Menge
2") bezeichnet, wobei die 2 darauf verweist, dass zwei Byte für die Kodierung
jedes Zeichens verwendet werden. UCS-2 ist also ein "Double Byte Character
Set". Wenn von "Unicode" gesprochen wird, ist meist der Zeichensatz UCS-2
gemeint.
UCS-2 wird auch als UTF-16 bezeichnet. UTF-16 steht für "UCS Transformation
Format 16 Bit" (Dt. etwa: "Umwandlungsformat für die universelle Schriftzeichen-Menge
mit 16 Bit").
Im UCS-2 (Unicode) sind zusammengehörige Zeichen in so genannten Skripten zusammengefasst: Auf das lateinische Alphabet folgen das griechische, kyrillische, hebräische, arabische und andere, dann folgen Satzzeichen und Symbole; weiter geht es mit den beiden japanischen Schriften Hiragana und Katakana und dem koreanischen Hangul. In den chinesischen, japanischen und koreanischen (CJK) Skripten werden etwa 31.000 Schriftzeichen verwendet. Da jedoch in der japanischen und chinesischen Sprache rund 10.000 Schriftzeichen (in der Schreibweise, wenn auch nicht unbedingt in der Bedeutung und Aussprache) übereinstimmen, brauchten im Unicode "nur" rund 21.000 ost-asiatische Schriftzeichen festgelegt zu werden.
UTF-8
In vielen gängigen Anwendungen und Protokollen sind Zeichensätze vorgesehen, in denen jedes Schriftzeichen mit einem Byte (also acht Bit) oder sogar, wie im ASCII, nur mit 7 Bit kodiert ist. Daher ist das "Universal Character Set" mit vielen gebräuchlichen Programmen und Datenübertragungsverfahren unvereinbar. Deswegen wurden mehrere "UCS Transformation Formats" (UTF; Dt.: "UCS-Umwandlungsformate") mit unterschiedlichen Eigenschaften entwickelt. Eines dieser Umwandlungsformate für das "Universal Character Set" ist UTF-8.
In Unicode hat jedes Zeichen einen 16 Bit-Code. Die ersten 256 Zeichen
im Unicode entsprechen dem "ISO Latin-1"-Zeichensatz. Dabei stellt sich jedoch
das Problem, dass die Zeichen aus ISO Latin-1 mit je 8 Bit, die aus UCS-2
hingegen mit je 16 Bit kodiert sind. Bei den Unicode-Zeichen werden nicht
benutzte Bit-Stellen durch Leerstellen aufgefüllt, die in Latin-1 keinen
Sinn ergeben und zu Zeichenkauderwelsch führen. So ist der Buchstabe A in
ASCII in Hexadezimalschreibweise "41"; in Unicode wird das große A hingegen
in Hexadezimal-Schreibweise als "0041" wiedergegeben. Um den Unicode abwärtskompatibel
mit ISO Latin-1 zu halten, wurde das "UCS Transformation Format 8 Bit" (UTF-8;
Dt. etwa: "Umwandlungsformat für die universelle Schriftzeichen-Menge mit
8 Bit") eingeführt. UTF-8 kann jedes Unicode-Zeichen als Abfolge von Datenwörtern
von je 8 Bit Länge ausdrücken. Durch Umkodierung mit Hilfe des Transformationsformats
UTF-8 kann man die mit 16 Bit kodierten Unicode-Zeichen auch in einer 8 Bit-Umgebung
verwenden. Durch die Transformation werden keine zusätzlichen ASCII-Zeichen
erzeugt. UTF-8 ermöglicht also die Umwandlung von 16 Bit- in 8 Bit-kodierte
Schriftzeichen.
UTF-8 ist im "Request For Comments" (RFC) Nr. 2279 beschrieben.
UFT-8 hat gegenüber UTF-16 (UCS-2) den Vorzug, weitgehend mit herkömmlichen Datei-Systemen, Parsern und anderen Programmen kompatibel zu sein.
UCS 4
Die Kodierung für Unicode-Zeichen der höheren Ebenen des Unicode wird
als "Universal Character Set 4" (UCS-4; Dt.: "Universelle Schriftzeichen-Menge
4") bezeichnet, wobei die 4 darauf verweist, dass vier Byte (32 Bit) für
die Kodierung jedes Zeichens verwendet werden. Die UCS-4-Kodierung ermöglicht
es, jedes beliebige Unicode-Zeichen, gleichgültig welcher Ebene des Unicode,
in einem 32 Bit langen Datenwort dazustellen. Diese Kodierung wird mit Rücksicht
auf ihren hohen Speicherplatz-Bedarf nur dann verwendet, wenn tatsächlich
Unicode-Zeichen verwendet werden sollen, die zu einer höheren Ebene als der
"Basic Multilingual Plane" gehören; andernfalls genügt UCS-2.
UCS-4 wird auch als UTF-32 bezeichnet. UTF-32 steht für "UCS Transformation
Format 32 Bit" (Dt. etwa: "Umwandlungsformat für die universelle Schriftzeichen-Menge
mit 32 Bit").
Die verschiedenen Unicode-Versionen
Unicode-Version 1.0 kam im Jahr 1991 heraus, Version 1.1 stammt aus dem Jahre 1993, Version 2.0 von 1996, Version 2.1 von 1998 und Version 3.0 aus dem Jahr 1999. In der Unicode-Version 3.0 wurden bereits 49.194 Zeichen von 65.536 möglichen Zeichen zugewiesen. In die Version 3.1 vom März 2001 sollten nochmals 44.946 Zeichen, zum Beispiel aus historischen Schriften (etwa Runen oder Hieroglyphen), zusätzlich aufgenommen werden, so dass der Unicode 94.140 Zeichen umfasst. So viele Zeichen sind in 16 Bit pro Zeichen jedoch nicht mehr darstellbar; deswegen werden in den Unicode-Ebenen oberhalb des "Basic Multilingual Plane" vier Byte (32 Bit) pro Zeichen verwendet, was 4.294.967.296 verschiedene Zeichen ermöglicht.
Sonderzeichen im Internet
Unicode im Internet
Unicode definiert zwar einen Byte-Wert für alle gängigen (und etliche
seltene) Textzeichen, löst jedoch nicht das Problem, wie diese Zeichen an
einem Computer dargestellt werden können, denn Unicode enthält keine Angaben
darüber, wie das Zeichen zum Beispiel auf dem Bildschirm oder im Druck darzustellen
ist. Herkömmliche Computer-Schriftarten reichen dazu nicht aus und neue,
zum Unicode passende Schriftarten verbreiten sich erst allmählich.
Der Unicode-Standard wird zwar von führenden Computer-Unternehmen wie Apple,
Hewlett-Packard, IBM, JustSystem, Microsoft, Oracle, SAP, Sun, Sybase und
Unisys unterstützt, setzt sich aber gleichwohl nur langsam durch. Manche
modernen Betriebssysteme und Anwendungen unterstützen Unicode-Zeichen nach
der "Basic Multilingual Plane":
Sowohl die plattform-übergreifende Programmiersprache Java als auch das Microsoft-Betriebssystem
Windows NT arbeiten intern mit Unicode. NT enthält mit "Lucida Sans Serif"
einen immerhin 1.300 Zeichen umfassenden Font für Unicode-Zeichen. "Arial
Unicode MS" ist ein nicht frei verfügbarer Font, der alle Unicode-Zeichen
der Unicode-Version 2 darstellen kann, also auch die Zeichen vieler asiatischer
Schriften. Das Apple-Betriebssystem MacOS gestattet Dateinamen in Unicode.
Unicode ist anwendbar in ECMAScript (JavaScript), im "Lightweight Directory
Access Protocol" (LDAP) und "Common Object Request Broker Architecture" (CORBA)
ab Version 3.0.
Im Internet ist die Verwendung von Unicode-Zeichen nur eingeschränkt möglich, obwohl das "World Wide Web Consortium" (W3C) den Unicode in den Standard von HTML 4.0 aufgenommen hat. Seit Version 2.0 ist Unicode auf die internationale Norm ISO/IEC 10646 abgestimmt, der auch die "HyperText Markup Language" (HTML) seit Version 4.0 und die "eXtensible Markup Language" (XML) seit Version 1.0 folgen. Dadurch ist es relativ einfach, jedes beliebige Unicode-Zeichen in einem HTML- oder XML-Dokument zu verwenden. Dazu schlägt man in den Unicode-Zeichentabellen nach, welchen Byte-Wert (welche laufende Nummer) das gewünschte Zeichen hat. Dann kann das betreffende Unicode-Zeichen als numerische Notation (in dezimaler oder hexadezimaler Schreibweise) in den Quelltext der HTML- oder XML-Datei eingefügt werden. Neuere Browser können Web-Seiten darstellen, in denen Unicode-Zeichen verwendet werden, wenn beim Client ein geeigneter Font zur Wiedergabe der Zeichen installiert ist. Auch in der "Wireless Markup Language" (WML), in der Internet-Seiten für mobile Kleingeräte (zum Beispiel Mobiltelefone) kodiert werden, können Unicode-Zeichen verwendet werden.
Wer über einen Unicode-fähigen Browser wie den Netscape Communicator 4.0 (oder höher) oder den Microsoft Internet Explorer 4.0 (oder höher) verfügt sowie ein Betriebssystem benutzt, das mit Unicode umgehen kann (MS Windows 95; 98; NT 4.0; 2000), kann sich zumindest die meisten Unicode-Zeichen aus folgenden Skripten anzeigen lassen:
- ASCII (U+0020 bis U+007F);
- "Latin-1 Supplement" (U+0080 bis U+00FF);
- "Latin Extended-A" (U+0100 bis U+017F);
- Teile von "Latin Extended-B" (U+01FA bis U+01FF);
- "Greek" (U+0370 bis U+03FF);
- "Cyrillic" (U+0401 bis U+045F);
- Teile von "Latin Extended Additional" (U+1E80 bis U+1E85);
- Teile von "General Punctuation" (U+2000 bis U+26FF)
Die meisten gängigen Browser können zwar viele, aber nicht alle Sonderzeichen darstellen, und zwar selbst dann nicht, wenn der betreffende Browser grundsätzlich Unicode-fähig ist. Das liegt vermutlich daran, dass der Zeichenvorrat des Browsers (Font) zu klein ist, um jedes Unicode-Schriftzeichen (character) in ein graphisches Textzeichen (Glyphe) umzusetzen. Das Problem, dass die Browser die nötigen Fonts zur Anzeige der Unicode-Zeichen nicht haben, kann man möglicherweise durch "downloadable fonts" lösen. Leider gibt es keinen einheitlichen Standard für herunterladbare Schriftarten, sondern nur zwei miteinander inkompatible technische Lösungen, nämlich:
- Truedoc» von Bitstream» und das
- "Web Embedding Fonts Tool" (WEFT) von Microsoft»
Das TrueDoc-Verfahren von Bitstream wird vom Netscape Navigator seit Version 4.01 unterstützt, WEFT vom Microsoft Internet Explorer ab der Version 4.0. Für jede der beiden Lösungen ist eine spezielle Software erforderlich, die es ermöglicht, herkömmliche Schriftarten wie TrueType- oder Adobe-Schriftarten in das neue Dateiformat - '.pfr' ("Portable Font Resource") bei TrueDoc und '.eot' ("Embedded OpenType File") bei WEFT - zu konvertieren. Mit der Software können darüber hinaus auch einzelne, benötigte Zeichen in die zu erstellende Download-Schriftart übernommen werden.
Damit eine Website weiterhin mit beiden wichtigen Browser-Typen, dem Netscape Navigator wie dem MS Internet Explorer, benutzbar bleibt,
- müssen entweder beide Typen von herunterladbaren Schriften (TrueDoc und WEFT) angeboten werden oder
- zwar nur die herunterladbare Schrift im TrueDoc-Format, zusätzlich aber ein bestimmtes ActiveX-Control, mit dem eine herunterladbare Schrift im TrueDoc-Format auch im MS Internet Explorer verwendbar wird. Bitstream ermöglicht es nämlich, ein (nicht allzu großes) ActiveX-Control mitzuliefern, das den MS Internet Explorer ab Version 4.0 ebenfalls dazu befähigt, Web-Seiten mit eingebundenen TrueDoc-Schriftarten darzustellen.
Die WEFT-Technologie ist auf den Internet Explorer beschränkt, kann also von Anwendern mit anderen Browsern nicht genutzt werden.
Informationen über das "Font Embedding" mit WEFT findet man auf der Microsoft-Website unter MSDN Home > MSDN Library > HTML and Dynamic HTML > Overviews/Tutorials > About Font Embedding».
TrueDoc-Schriftarten werden - anders als herkömmliche Fonts - nicht beim Anwender installiert und sind dann dort "verfügbar", sondern sie werden entweder direkt in die Web-Seite eingebunden oder darin referenziert. Ein TrueDoc-fähiger Browser erkennt solche Schriftarten und lädt sie zusammen mit den anzuzeigenden Daten eines Dokuments. Ein Web-Browser, der das TrueDoc-Verfahren unterstützt, stellt dann die Web-Seite in der gewünschten Schriftartauf dem Bildschirm des Anwenders dar. Soweit ich verstanden habe, werden die Fonts also gewissermaßen server-seitig und nicht client-seitig ausgeführt.
Benötigt wird also ein Font (eine Schrift), der zugleich die Sonderzeichen vieler verschiedener europäischer Sprachen darzustellen vermag. Die Auswahl unter Unicode-fähigen Fonts ist recht beschränkt. Folgende Fonts kommen möglicherweise in Betracht:
- "Lucida Sans Unicode" von Bigelow & Holmes. Dieser Font umfasst immerhin 1.775 Glyphen und wurde angeblich mit bestimmten Versionen des Microsoft-Betriebssystems NT ausgeliefert (Quelle: http://www.truetype.demon.co.uk/unicode.htm»).
- "Times New Roman", "Arial" und "Courier"; jeweils in vier verschiedenen Schriftschnitten ("styles") sowie "Impact" können angeblich kostenlos von der Website von Microsoft herutergeladen werden. Diese Fonts enthalten den "Windows Glyph List"-(WGL4)-Zeichensatz, der die meisten wichtigen lateinischen, griechischen und kyrillischen Textzeichen darstellen kann. Jeder dieser Zeichensätze umfasst 653 Glyphen (Quelle: http://www.truetype.demon.co.uk/unicode.htm»).
- Der TrueType Font "Bitstream Cyberbit" wurde mit den Microsoft-Betriebssystemen Windows 95 und NT ausgeliefert. Der "Roman Style" mit 8.500 Glyphen ist angeblich kostenlos erhältlich. Darin sind alle wichtigen europäischen Sprachen (einschließlich Griechisch, Russisch und Türkisch) darstellbar (Quelle: http://www.truetype.demon.co.uk/unicode.htm»).
Links zum Thema Sonderzeichen und Unicode
"Overview of European Diacritics"
http://www.tiro.com/di_intro.html»
by John Hudson; Tiro.com. Übersicht über die Benenunng der einzelnen Diakritika
und über die diakritischen Zeichen, die in bestimmten europäischen Sprachen
verwendet werden.
ISO 8859-2 Character Set
http://nl.ijs.si/gnusl/cee/charset.html»
Der ISO-Zeichensatz für die (ost-)europäischen Sprachen: Albanisch, Bosnisch,
Deutsch, Englisch, Finnisch, Irisch (Gälisch), Kroatisch, Polnisch, Rumänisch,
Serbisch (lateinische Transkription), Slowakisch, Slovenisch, Sorbisch (Lusatian),
Tschechisch, Ungarisch.
Font.org: Mittel- und osteuropäische Zeichen in HTML
http://studweb.euv-frankfurt-o.de/twardoch/f/de/comp/net/ce-html.html»
Über die korrekte Kodierung ost-europäischer Sonderzeichen in HTML.
Gymel.com: Zeichentabellen
http://www.gymel.com/charsets/»
DOS-Zeichensätze, Windows-Zeichensätze, ISO-8859-Zeichensätze, Bibliothekarische Zeichensätze.
Stefan Münz (SelfHTML): HTML-Zeichenreferenz
http://selfhtml.teamone.de/html/referenz/zeichen.htm»
Tabelle über die HTML-Maskierung von Sonderzeichen.
Unicode.org: Unicode Character Name Index
http://www.unicode.org/charts/charindex.html»
Hier kann man nachschlagen, in welchem Unicode-Zeichensatz (Skript) man ein bestimmtes Zeichen findet.
Unicode.org: Code Charts (PDF Version)
http://www.unicode.org/charts/»
Die einzelnen Unicode-Scripte und ihre Zeichen als PDF-Dateien.
Alan Wood's Unicode Resources
http://www.alanwood.net/unicode/»
Unicode and Multilingual Support in HTML, Fonts, Web Browsers and Other Applications.