Combining Grapheme Joiner
# Combining Grapheme Joiner

Der Combining Grapheme Joiner (kurz CGJ, zu deutsch etwa Kombinierender Graphemverbinder) ist das Unicode-Zeichen am Codepunkt U+034F. Der Name ist falsch gewählt, da das Zeichen keine Grapheme verbindet und auch im Unicode-Zeilenumbruch-Algorithmus keine Rolle spielt. Aus Stabilitätsgründen kann der Name aber nicht mehr geändert werden. Formal ist das Zeichen als kombinierendes Zeichen definiert, von der Funktion handelt es sich aber um ein Steuerzeichen in Unicode, das zu unterschiedlichen Zwecken eingesetzt wird.

Um zwei Zeichen zu einer Ligatur zu verbinden, existiert das spezielle Steuerzeichen „Breitenloser Verbinder“ (U+200D), welcher vor allem die Darstellung der Buchstaben z. B. in der arabischen oder indischen Schrift beeinflusst, sowie es ermöglicht, bestimmte Emojis, die aus mehreren Einzelzeichen bestehen, zu erzeugen.

## Anordnung komplexer Diakritika

Eine sichtbare Auswirkung hat das Zeichen bei der Darstellung mit diakritischen Zeichen, die sich über mehrere Buchstaben erstrecken. Der Unicode-Standard sieht vor, dass solche doppelten kombinierenden Zeichen über allen anderen Diakritika dargestellt werden. So wird in der Folge t – Kombinierendes doppelt so breites umgedrehtes Breve (U+0361) – Kombinierender Überpunkt (U+0307) – s der Punkt über dem umgedrehten Breve angezeigt: ṫ͡s

Möchte man den Punkt dagegen unter der Breve haben, so muss man ihm ein CGJ voranstellen: t͡͏̇s

Auch im Hebräischen wird das CGJ zur Positionierung bestimmter diakritischer Zeichen eingesetzt.

## Semantische Unterscheidung von diakritischen Zeichen

Diakritische Zeichen sind in Unicode nicht nach ihrer Funktion, sondern nur nach ihrem Aussehen kodiert. Daher können zwei diakritische Zeichen, die eine unterschiedliche semantische Bedeutung haben, aber gleich aussehen, nicht direkt unterschieden werden. So gibt es beispielsweise nur ein Trema, das sowohl Umlaute als auch eine Diärese markiert. Daher ist es nicht möglich einem ä anzusehen, ob es ein deutscher Umlaut ist, oder ein gewöhnliches a mit Trema. Zwar könnte man den Umlaut direkt als ä (U+00E4) kodieren und das a mit Trema als die Folge <U+0061, U+0308>, doch diese Unterscheidung würde beim Normalisieren verloren gehen. Um diese Unterscheidung zu bewahren, muss man dem kombinierenden Zeichen ein CGJ voranstellen, also die Folge <U+0061, U+034F, U+0308> verwenden.

## Sortierung

In einigen Sprachen werden einige Digraphen bei der alphabetischen Sortierung wie eigene Buchstaben behandelt, etwa das ch im Slowakischen. Der Unicode Collation Algorithm kann dies bei entsprechender Konfiguration beachten. Soll aber eine solche Kombination ausnahmsweise nicht als Digraph, sondern als einfache Folge der beiden Buchstaben sortiert werden, so können die beiden Zeichen mit einem CGJ getrennt werden.

## Quellen

* Julie D. Allen et al.: The Unicode Standard. Version 6.2 – Core Specification. The Unicode Consortium, Mountain View, CA, 2012. ISBN 978-1-936213-07-8. Chapter 16.2: Layout Controls. (online, PDF)
