Ein Vorrat an Zeichen zur Darstellung von Sachverhalten wird als Zeichensatz bezeichnet. Elemente eines Zeichensatzes können unter anderem Buchstaben eines Alphabets sein, Ziffern, mathematische Symbole Sonderzeichen oder Symbole der Lautumschrift, sowie Piktogramme und Steuerungszeichen. Besonders in der Informatik versteht man unter einem Zeichensatz die Gesamtheit aller Zeichen einer Zeichencodierung und ihre Zuordnung. Deren grafische Ausgestaltung wird Schriftzeichen genannt, die des gesamten Zeichensatzes Schriftart, die Regeln zur Zeichensetzung Schriftsatz.
Zeichensätze und Computer
Zeichensätze für Computer umfassen nicht nur die Elemente eines Zeichensatzes, sondern auch deren Regeln zur Codierung. Die bekanntesten Zeichencodierungen sind der ASCII, der erstmals auf Fernschreibern der erstmals 1963 auf Fernschreibern des Typs Teletype ASRR 33 zum Einsatz kam. Er besteht lediglich auf 95 darstellbaren Zeichen. Der internationale Standard, auf dem moderne Computersysteme seit 1991 basieren, ist der Unicode. In der Version 6.2 lassen sich mit 1.114.112 Codepoints 110.182 Zeichen bilden. Für das Internet ist außerdem die ISO/IEC 8859-Familie von Bedeutung, die aus 15 verschiedenen Zeichencodierungen besteht und alle europäischen Sprachen, sowie Arabisch, Hebräisch, Thailändisch und Türkisch abdeckt. Daneben gibt es noch einige Zeichensätze von Computerfirmen sowie spezifische nationale Varianten.
Unicode
Der bedeutendste Zeichensatz der Informatik ist der Unicode. Er ist internationaler Standard. In ihm wird langfristig jedes sinntragende Zeichen oder Textelement der bekannten Schriftkulturen und Zeichensysteme als digitaler Code festgelegt. Ziel ist es, inkompatible Codierungen in verschiedenen Ländern zu beseitigen. Auch heute wird der Unicode noch ständig erweitert und ergänzt. Die Zeichensatzfamilie ISO 10646 als Teil der ISO/IEC 8859-Familie verwendet praktisch bedeutungsgleiche Codierungen. Dort wird der Unicode auch als Universal Charakter Set (UCS) bezeichnet. Um einen Zeichensatz auf einem Bildschirm oder einen Drucker darstellen zu lassen, wird als Teil der Computerhardware ein Zeichengenerator benötigt.
Geschichte des Unicodes
Ursprüngliche Computer-Zeichensätze umfassten nur einen begrenzten Zeichenvorrat. Bei den meisten Codierungen lag die Grenze bei 128 (7 Bit) oder 256 (8 Bit) Codepositionen. Daraus ließen sich nach Abzug der Steuerzeichen lediglich 95 bis 191 Elemente bilden. Sie erlaubten nur die Darstellung weniger Sprachen oder Anwender mussten in einem Text mit unterschiedlichen Zeichensätzen arbeiten. Dadurch wurde der internationale Datenaustausch bis in die 1990er Jahre erheblich behindert.
Mit der ISO 2022 gelang es erstmals mehrere Sprachen (Alphabete) in einer Zeichencodierung darzustellen. Durch Escape-Sequenzen konnte zwischen Zeichensätzen gewechselt werden. Joseph D. Becker, Mitarbeiter von Xerox schrieb 1988 einen ersten Entwurf für einen universalen Zeichensatz, der ursprünglich dazu gedacht war, die Zeichen moderner Sprache zu codieren. Becker hatte ursprünglich vor lediglich 214 Zeichen (!) zu codieren. Andere Zeichen sollten über einen privaten Modus registriert werden. Im Herbst 1991 wurde nach einer Entwicklungszeit von mehreren Jahren die Version 1.0.0 des Unicode-Standards veröffentlicht, die zu dieser Zeit alle europäischen, nahöstlichen und indischen Sprachen codierte. Sie wurde später um die Zeichen der ostasiatischen Sprachen erweitert. Bis 1996 wurde Unicode auf 1.114.112 Codepoints erweitert, mit denen sich 110.182 Zeichen darstellen lassen.
Codepunkte (Codepoints) und Zeichen
Jedes elementare Zeichen des Unicodes ist in einem Codepunkt codiert. Diese Codepoints werden hexadezimal mit einem vorangestellten U+ dargestellt. Das Zeichen ß mit der Nummer 223 wird also als U+00DF codiert. Nicht allen Codepunkten sind Zeichen zugeordnet. Die übrigen sind für sogenannte Surrogatpaare und process internal uses (prozessinterner Gebrauch) reserviert.
Außerdem gibt es spezielle Bereiche für die private Nutzung, der Codepunkte kein Zeichen zugewiesen ist. Diese können von den Erzeugern und Verwendern spezieller Texte verwendet werden, deren Zeichen nicht im Unicode erfasst sind (PUA-Bereich). Der Bereich ist unter anderem für die Schriftzeichen indigener Völker reserviert, auch Zeichen, die nicht den Regeln der Unicode Codierung entsprechen, sollen hier erfasst werden.
Codierung
Neben den eigentlichen Zeichen sind im Unicode auch eine Reihe von Codierungen definiert, mit denen sich der Unicode Zeichensatz implementieren lässt, um vollen Zugriff auf die Zeichen zu haben. Sie werden unter dem Begriff Unicode Transformation Format kurz UTF zusammengefasst. So haben moderne Webseites im Header einen Zeichensatzinformation UTF-8, die es erlaubt die im Body verwendeten Zeichen gemäß dieser Zugriffsdefinition gemäß UNIX-Betriebssystemen darzustellen. Am weitesten verbreitet ist der URF-16, der in den meisten anderen Betriebssystemen zum Einsatz kommt.
Eine ganze Reihe Zeichen, der im Unicode enthaltenen Zeichen sind Kompatibilitätszeichen, die mit anderen bereits codierten Zeichen oder Zeichensequenzen des Unicodes korrespondieren. Dazu zählen zum Beispiel die deutschen Umlaute, die theoretisch auch aus Basisbuchstaben oder einem Basisbuchstaben kombiniert mit einem Doppelpunkt dargestellt werden können. Dies erleichtert die Verarbeitung von Unicode-Texten, da so nur eine neue Kombination für ein mögliches Zeichen entsteht und nicht mehrere unterschiedliche.
Außerdem stellt Unicode Schriftfolgen zur Verfügung, die der Sortierung von Zeichen dienen. Da nicht jedes Zeichen eines Schriftsystems bei den Anwendern der üblichen Sortierung entspricht, kann bei einer Datenbankanwendung üblicherweise nicht die Reihenfolge der Codepunkte verwendet werden. Zu diesem Zweck definiert Unicode den Unicode Collation Algorithm, wie die Zeichenfolgen innerhalb eines Schriftsystems oder auch Schriftsystemübergreifend sortiert werden. Dieser kann angewendet werden, wenn die Sortierung nicht von anderen spezielleren Rahmenbedingungen bestimmt wird.
Kriterien der Codierung
Eine Besonderheit des Unicodes ist, dass einmal eingeführte Codierungen nicht mehr entfernt werden, weil nur auf diese Weise die Langlebigkeit digitaler Daten gewährleistet wird. Dies führt dazu, dass die Aufnahme von Zeichen in den Unicode sehr sorgfältig geprüft wird, was manchmal Jahre dauert. Auch werden im Unicode lediglich abstrakte Zeichen codiert und keine Schreibweisen des gleichen Zeichens. Dies stellt die Sprachwissenschaften vor Probleme, weil es verhindert das Zeichenvarianten von historischer Bedeutung digital erfasst werden können. Auch bestimmte Kriterien der Vereinheitlichung gehören zu den Charakteristika des Unicodes. So wurden zum Beispiel durch die sogenannte Han-Vereinheitlichung Zeichen einer Sprachfamilie zusammengefasst, deren Verwandtschaft bis heute von Sprachwissenschaftlern bestritten wird, was ebenfalls zur Entwicklung konkurrierender Systeme in Ostasien geführt hat. Auch bestimmte Sortierungskriterien, wie die der thailändischen Sprachfamilie bleiben umstritten. Dennoch ist der Schriftsatz Unicode bis heute der weit verbreitetste Zeichensatz und wird auf fast allen modernen Computern verwendet. Es wird gepflegt und erweitert von den Mitarbeitern des Unicode Consortiums in Mountain View, Kalifornien.