The zero-width joiner (ZWJ, /ˈzwɪdʒ/)[1] (‍) is a
non-printing character used in the computerized
typesetting of
writing systems in which the shape or positioning of a
grapheme depends on its relation to other graphemes (
complex scripts), such as the
Arabic script or any
Indic script. Sometimes the
Roman script is to be counted as complex, e.g. when using a
Fraktur typeface. When placed between two characters that would otherwise not be connected, a ZWJ causes them to be printed in their connected forms.
The exact behaviour of the ZWJ varies depending on whether the use of a
conjunct consonant or ligature (where multiple characters are shown with a single
glyph) is expected by default; for instance, it suppresses the use of conjuncts in
Devanagari (whilst still allowing the use of the individual joining form of a dead consonant, as opposed to a
halant form as would be required by the
zero-width non-joiner), but induces the use of
conjuncts in Sinhala (which does not use them by default).[2] Similarly to Sinhala, when a ZWJ is placed between two
emoji characters (or interspersed between multiple), it can result in a single glyph being shown, such as the family emoji, made up of two adult emoji and one or two child emoji.[3]
In some cases, such as the second Devanagari example below, the ZWJ can be used to display a joining form in isolation, when included after the character and combining halant code.
The character's code point is U+200DZERO WIDTH JOINER (‍). In the
InScript keyboard layout for Indian languages, it is typed by the key combination Ctrl+Shift+1. However, many layouts use the position of QWERTY's ']' key for this character.[4]
The zero-width joiner (ZWJ, /ˈzwɪdʒ/)[1] (‍) is a
non-printing character used in the computerized
typesetting of
writing systems in which the shape or positioning of a
grapheme depends on its relation to other graphemes (
complex scripts), such as the
Arabic script or any
Indic script. Sometimes the
Roman script is to be counted as complex, e.g. when using a
Fraktur typeface. When placed between two characters that would otherwise not be connected, a ZWJ causes them to be printed in their connected forms.
The exact behaviour of the ZWJ varies depending on whether the use of a
conjunct consonant or ligature (where multiple characters are shown with a single
glyph) is expected by default; for instance, it suppresses the use of conjuncts in
Devanagari (whilst still allowing the use of the individual joining form of a dead consonant, as opposed to a
halant form as would be required by the
zero-width non-joiner), but induces the use of
conjuncts in Sinhala (which does not use them by default).[2] Similarly to Sinhala, when a ZWJ is placed between two
emoji characters (or interspersed between multiple), it can result in a single glyph being shown, such as the family emoji, made up of two adult emoji and one or two child emoji.[3]
In some cases, such as the second Devanagari example below, the ZWJ can be used to display a joining form in isolation, when included after the character and combining halant code.
The character's code point is U+200DZERO WIDTH JOINER (‍). In the
InScript keyboard layout for Indian languages, it is typed by the key combination Ctrl+Shift+1. However, many layouts use the position of QWERTY's ']' key for this character.[4]