Combining grapheme joiner

Unicode control character

The combining grapheme joiner (CGJ), U+034F ͏ COMBINING GRAPHEME JOINER is a Unicode character that has no visible glyph and is "default ignorable" by applications. Its name is a misnomer and does not describe its function: the character does not join graphemes.[1] Its purpose is to semantically separate characters that should not be considered digraphs as well as to block canonical reordering of combining marks during normalization.

For example, in a Hungarian language context, adjoining letters c and s would normally be considered equivalent to the cs digraph. If they are separated by the CGJ, they will be considered as two separate graphemes. However, in contrast to the zero-width joiner and similar characters, the CGJ does not affect whether the two letters are rendered separately or as a ligature or cursively joined—the default behavior for this is determined by the font.[2]

The CGJ is also needed for complex scripts. For example, in most cases the Hebrew cantillation accent metheg is supposed to appear to the left of the vowel point and by default most display systems will render it like this even if it is typed before the vowel. But in some words in Biblical Hebrew the metheg appears to the right of the vowel, and to tell the display engine to render it properly on the right, CGJ must be typed between the metheg and the vowel. Compare:

This table contains Hebrew cantillation, requiring a font (Ezra SIL SR is recommended), browser, and/or operating system that properly supports Hebrew cantillation display. Without proper rendering support, you may see question marks, boxes, or other symbols.
he ה
pathah (vowel) ַ
metheg ֽ
he + pathah + metheg הַֽ
he + metheg + pathah הַֽ
he + metheg + CGJ + pathah הֽ͏ַ

In the case of several consecutive combining diacritics, an intervening CGJ indicates that they should not be subject to canonical reordering.[2]

In contrast, the "zero-width non-joiner" (at U+200C in the General Punctuation range) prevents two adjacent character from turning into a ligature.

References

  1. ^ "UTN #27: Known anomalies in Unicode Character Names".
  2. ^ a b "The Unicode StandardVersion 6.0 – Core Specification" (PDF). www.unicode.org. Retrieved 2020-04-16.

External links

  • Unicode FAQ - Characters and Combining Marks
  • Unicode FAQ - Normalization
  • v
  • t
  • e
Unicode
Unicode
Code pointsCharacters
Special purpose
Lists
Processing
Algorithms
Comparison of encodings
On pairs of
code pointsUsageRelated standardsRelated topics
Scripts and symbols in Unicode
Common and
inherited scripts
Modern scripts
Ancient and
historic scripts
Notational scripts
Symbols, emojis
  •  Category: Unicode
  •  Category: Unicode blocks