Unicode

This article is in German.
English Information:
The Unicode ConsortiumThe Unicode Consortium
UTF-8 processing libraryUTF-8 processing library
Unicode ist ein Standard um die Codierung von Zeichen in Computersystemen international zu normieren. Da Computer die Verarbeitung von Zeichen intern mit Hilfe von Zahlen bewerkstelligen, muss eine Vereinbarung darüber getroffen werden, welches Zeichen welcher Zahl zugeordnet wird und umgekehrt. Die meisten dieser Zuordnungstabellen beziehen sich hierbei auf eine regional beschränkte Zeichenmenge und können daher nicht genutzt werden, um Texte verschiedener Sprachen in einem Format zu übertragen oder zu speichern.

Allein in Europa gibt es derzeit eine Vielzahl verschiedener gebräuchlicher Zeichenzuordnungen. Die Vereinheitlichung dieser und anderer Codierungen hat sich Unicode zum Ziel gesetzt.

Da auch diese Seite mittels Unicode codiert und übertragen wurde, kann sie - sofern von Ihrem Webbrowser unterstützt - neben den deutschen Umlauten z. B. auch spezifische Zeichen anderer Sprachen mit lateinischem Alphabet (Česky, Español, Français, Română, Slovenčina, Türkçe) sowie griechische (Ελληνικά), hebräische (עברית), russische (Русский), ukrainische (Українська) Zeichen enthalten.

Weitere technische Details:

In der Version 4.1.0 von Unicode gibt es 237.236 verschiedene Codes. Diese stellen nicht immer ein Zeichen dar, sondern dienen auch der Modifikation vorhergehender Zeichen (z. B. Hinzufügen eines Akzents), der Formatierung im Fließtext (z. B. bedingtes Trennzeichen, Absatztrenner) oder der Unterstützung von speziell formatierten Zeichen (z. B. hochgestellte 2 (²) oder Ligaturen).

Viele Zeichencodierungen benutzen ein Byte, also 8 Bit zur Darstellung eines Zeichens (256 verschiedene Codes = maximal 256 Zeichen). Bei Unicode ist dies wegen der großen Anzahl an Zeichen nicht möglich.

Um dennoch eine Kompatibilität zu Systemen die 8 Bit Zeichen verarbeiten herzustellen, gibt es die sogenannte UTF-8 Codierung, welche ein Unicode Zeichen als eine aus einem, zwei, drei oder vier Bytes bestehender Folge zur Speicherung oder Übertragung umwandelt.

Die ordnungsgemäße Unterstützung des Unicode Standards stellt aufgrund der Komplexität und des Umfangs dieser Norm eine technische Herausforderung dar. So gibt es beispielsweise zwei Möglichkeiten den deutschen Umlaut ä zu codieren:

Er läßt sich mittels eines Codes (Code Nr. 228, ä) darstellen, oder als Kombination des lateinischen Buchstabens a (Code Nr. 97, a) gefolgt von einem Code der ein Hinzufügen von zwei Punkten darüber bewirkt (Code Nr. 776, ¨). Liegt nun ein Wort (z.B. Ähre) in der einen Form vor, wird jedoch bei einer Suchanfrage die andere Form eingegeben, kann - sofern man nicht geeeignete Maßnahmen ergreift - die Suchanfrage zu keinem Ergebnis führen.

Eine geeignete Lösung für dieses Problem ist die sogenannte "Unicode Normalization". Hierbei werden die verschiedenen Codierungsformen nochmals normiert, so dass ein Vergleich von Zeichenketten möglich wird. Optional kann in diesem Schritt auch eine Entfernung spezieller Kontrollzeichen erfolgen (z. B. die Entfernung von bedingten Trennzeichen, die für einen Wortvergleich störend sind).

Bibliothek zum Verarbeiten von UTF-8 codierten ZeichenkettenBibliothek zum Verarbeiten von UTF-8 codierten Zeichenketten