The zero-width joiner (ZWJ, /ˈzwɪdʒ/;[1] rendered: ; HTML entity: or ) 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.
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).
[4] 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.
In the InScript keyboard layout for Indian languages, it is typed by the key combination Ctrl+⇧ Shift+1.