• +49-(0)721-402485-12
Ihre Experten für XML, XQuery und XML-Datenbanken

Unicode

Von Anfang an war XML für die weltweite Verwendung entworfen worden. Daher nimmt es auch Bezug auf entsprechende Standards, wie z. B. Unicode und ISO/IEC 10646, die die Kodierung aller wichtigen Buchstaben und Zeichen der Welt erlauben, sowie RFC 1766 zur Identifikation von Sprachen.

Der Unicode-Standard hat das Ziel, die Zeichen aller Schriften der Welt zu erfassen. Dazu wird den Zeichen eine natürliche Zahl als Codepoint zugeordnet. Ein solcher Codepoint wird üblicherweise in der hexadezimalen Darstellung notiert, und zwar mit dem Präfix U+, um anzuzeigen, dass es sich um einen Unicode-Codepoint handelt. U+0020 steht beispielsweise für ein Leerzeichen. Die Codepoints bis einschließlich U+00FF entsprechen den Codepoints des in Westeuropa sehr verbreiteten Zeichensatzes Latin-1 (ISO8859-1), bei dem wiederum die Zeichen bis U+007F dem Zeichensatz US-ASCII entsprechen. XQuery unterstellt eine Kodierung in Unicode.

Mit der Zuweisung von Codepoints ist noch nicht festgelegt, wie diese Zahlen in einem Computer dargestellt werden. Tatsächlich gibt es mehrere Kodierungsverfahren für Unicode, von denen die zwei wichtigsten kurz erwähnt werden sollen:

  • UTF-16
    Das nächstliegende Verfahren ist, jedes Zeichen mit derselben Zahl von Bytes zu kodieren. Da Unicode sich in den ersten Versionen auf Codepoints unter 65535 beschränkte, lag es nahe, zwei Byte pro Zeichen vorzusehen. Zeichen oberhalb von 65535 werden durch zweimal 2 Bytes kodiert: Unicode hat einen Bereich von Codepoints extra für diese Kodierung reserviert (die Surrogate).
  • UTF-8
    Gerade bei englischem Text bedeutet eine Kodierung in UTF-16 eine Verdoppelung des Umfangs verglichen mit einer Kodierung in ASCII. Hier ist eine Kodierung in UTF-8 günstiger, die folgendermaßen vorgeht: Codepoints unter 128 werden in 1 Byte kodiert, Codepoints bis 2047 in 2 Bytes, Codepoints bis 65535 in 3 Bytes und alle anderen in 4 Bytes. Diese Kodierung wurde so gewählt, damit Texte, die nur Zeichen aus US-ASCII verwenden (mit Codepoints unter 128), ohne Konvertierung als Unicode verarbeitet werden können.

UTF-8 und UTF-16 sind die beiden Kodierungen, die jeder XML-Prozessor verstehen muss — es ist natürlich erlaubt, weitere Kodierungen auch anderer Zeichensätze zu verstehen.

 

Quelle: "XQuery – Grundlagen und fortgeschrittene Methoden", dpunkt-Verlag, Heidelberg (2004)

<< zurückvor >>