A little curiosity about COMBINIG GRAPHEME JOINER

In the glyphs table, at uni034F, there is COMBINIG GRAPHEME JOINER.
From Wikipedia I learn that it «is a Unicode character that has no visible glyph and is "default ignorable"».
So, how is to to be "designed", or the slot must remain empy, or what else?
Thank you
ms

Comments

  • An empty glyph with proper Unicode, just that.
  • Ah, ok... thank you
  • Normally, you do not need to include it in a font at all.
  • John Hudson
    John Hudson Posts: 3,229
    A bit more background:

    This character ended up not being used for it's original intended purpose, so the name is a bit misleading. In fact, the most common use of this character now is to prevent some kinds of interaction between characters. In particular, this character is recommended by Unicode to be used to force overrides of canonical combining class reordering during string normalisation (and if you don't know what that means, you probably don't need to know). The best known use case is Biblical Hebrew, for which the canonical combining classes assigned to Hebrew vowel and cantillation marks are wrong but cannot be fixed due to stability agreements between Unicode and other standards bodies. So Unicode specifies that U+034F can be inserted between combining marks to prevent their reordering during normalisation.

    If included in fonts, the glyph for this character should be empty and zero-width.
  • Helmut Wollmersdorfer
    edited February 2020
    Normally, you do not need to include it in a font at all.
    What happens in renderers if zero width characters are missing in the font? I cannot test it easily, as I always have fallback fonts installed.
  • The name is confusing because it's more the opposite.

    There are examples in the the English and German Wikipedias:

    https://en.wikipedia.org/wiki/Combining_Grapheme_Joiner
    https://de.wikipedia.org/wiki/Combining_Grapheme_Joiner

    Technically it should avoid normalisation, e. g. a + CGJ + combing_dieresis should convert to the codepoint ä. As canonical reordering is part of normalisation it's also avoided. 

    Other examples are digraphs like <ch>, <ph>, <sh> or multigraphs like <sch> which are seen in some languages as graphemes (in the linguistic sense), because they are single phonems. In this case CGJ can be used to treat the sequence as single characters e. g. for sorting (collation order).

    It will also avoid ligatures, but for this purpose ZWNJ should be used, or if the letters belong to two different syllables the soft hyphen would be a better choice.