Zero-width joiner

{{Short description|Non-printing character used in computerized typesetting}}

{{distinguish|Zero-width non-joiner|Word joiner}}

{{Contains special characters|Indic|image=}}

File:IEC 60417 - Ref-No 6077-2.svg

The zero-width joiner (ZWJ, {{IPAc-en|'|z|w|ɪ|dʒ}};{{Cite web|last=|first=|date=2016-11-28|title=113 New Unicode Emoji (plus skin tones)|url=http://blog.unicode.org/2016/11/113-new-unicode-emoji-plus-skin-tones.html|access-date=2021-01-14|website=Unicode Blog}} rendered: {{Not a typo|{{kbd|‍}}}}; HTML entity: {{kbd|‍}} or {{kbd|‍}}) 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).{{cite web| url=http://unicode.org/review/pr-37.pdf |title=Proposal on Clarification and Consolidation of the Function of ZERO WIDTH JOINER in Indic Scripts |id=UTC L2/04-279, Public Review Issue #37 |date=2004-06-30 |first=Peter |last=Constable |publisher=Unicode Consortium}}{{cite web |url=https://www.unicode.org/versions/Unicode16.0.0/core-spec/chapter-13/#G38608 |title=13.2. Sinhala (§ Virama (al-lakuna) and Consonant Forms) |work=The Unicode Standard, Core Specification |institution=Unicode Consortium |quote=Unless combined with a U+200D {{sc|ZERO WIDTH JOINER}}, an {{lang|si-Latn|al-lakuna}} is always visible and does not join consonants to form orthographic consonant clusters. […] Note how the use of ZWJ in Sinhala differs from that of typical Indic scripts.}} 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.{{cite web|url=http://emojipedia.org/zero-width-joiner/ |title=Zero Width Joiner |language=en |publisher=Emojipedia |access-date=2015-09-21}}

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 {{unichar|200D|ZERO WIDTH JOINER|html=}}. In the InScript keyboard layout for Indian languages, it is typed by the key combination {{Key press|Ctrl|Shift|1}}. However, many layouts use the position of QWERTY's ']' key for this character.{{cite web |url=http://malayalam.kerala.gov.in/index.php/%E0%B4%9A%E0%B4%BF%E0%B4%A4%E0%B5%8D%E0%B4%B0%E0%B4%82:Inscript.jpg |title=ചിത്രം:Inscript.jpg – Malayalam Computing |language=ml |publisher=Malayalam.kerala.gov.in |access-date=2011-10-22 |archive-date=2011-10-11 |archive-url=https://web.archive.org/web/20111011172849/http://malayalam.kerala.gov.in/index.php/%E0%B4%9A%E0%B4%BF%E0%B4%A4%E0%B5%8D%E0%B4%B0%E0%B4%82:Inscript.jpg |url-status=dead }}

Examples

File:Zero Width (Non)Joiner.svg, Tamil, Kannada, Sinhala and emoji.]]

class="wikitable"

|+ Bengali

Character sequenceAppearance
[ra র] [virāma ্ ] [ya য]র্য
[ra র] [ZWJ] [virāma ্ ] [ya য]র‍্য

class="wikitable"

|+ Devanagari

Character sequenceAppearance
[ka क] [virāma ्]क्
[ka क] [virāma ्] [ZWJ]क्‍
[ka क] [virāma ्] [ṣa ष]क्ष
[ka क] [virāma ्] [ZWJ] [ṣa ष]क्‍ष

class="wikitable"

|+ Kannada

Character sequenceAppearance
[ra ರ‍] [virāma ್] [ka ಕ]ರ್ಕ
[ra ರ‍] [ZWJ] [virāma ್] [ka ಕ]ರ‍್ಕ

class="wikitable"

|+ Sinhala

Character sequenceAppearance
[śa ශ] [virāma ්] [ra ර]ශ්ර
[śa ශ] [virāma ්] [ZWJ] [ra ර]ශ්‍ර

class="wikitable"

|+ Malayalam
(Until Unicode 5.0; in later editions, specific code points are allotted{{cite web|url=https://www.unicode.org/L2/L2007/07129-malayalam.pdf |title=Changes related to Malayalam in Unicode 5.1.0 from 5.0 |publisher=Unicode.org |access-date=2015-06-12}})

Character sequenceAppearance
[Na ണ] [virāma ്] [ZWJ]ണ്‍
[na ന] [virāma ്] [ZWJ]ന്‍
[ra ര] [virāma ്] [ZWJ] ര്‍
[la ല] [virāma ്] [ZWJ] ല്‍
[La ള] [virāma ്] [ZWJ] ള്‍

class="wikitable"

|+ Emoji

Character sequenceAppearanceDescription
[Man] [ZWJ] [Woman] [ZWJ] [Boy]👨‍👩‍👦Family: Man, Woman, Boy
[Waving white flag] [ZWJ] [Rainbow]🏳️‍🌈Rainbow Flag
[Runner] [Emoji Modifier Fitzpatrick Type-1-2] [ZWJ] [Female Sign]🏃🏻‍♀️Woman Running: Light Skin Tone
[Runner] [Emoji Modifier Fitzpatrick Type-6] [ZWJ] [Female Sign]🏃🏿‍♀️Woman Running: Dark Skin Tone
[Man] [ZWJ] [Red hair]

|👨‍🦰

|Man: Red Hair

[Person] [ZWJ] [Sheaf of rice]

|👨‍🌾

|Farmer

See also

References

{{Reflist}}