This is a meta issue to track all the bugs related to the zero-width non-joiner (ZWNJ) and zero-width joiner (ZWJ) characters.
Feel free to add related bugs.
Zero-width non-joiner (ZWNJ, U+200C, ‌) and zero-width joiner (ZWJ, U+200D, ‍) are special Unicode character that are used in many writing systems. ZWNJ creates an optional break, or avoids creating ligatures. ZWJ does the opposite, and puts a character (for example an Arabic character) in a joining mode.
These special Unicode characters are used in many languages including Arabic, Persian, Malay, Hebrew, Nepali Bengali, and even German and English.
In Microsoft Word, ZWNJ it is called "No-width optional break" in the special characters, and Ctrl+Space is usually assigned for creating it. ZWJ is called "No-Width Non Break". To see this in MS Word, you must choose "Insert" > "Symbols" > "More Symbols..." and then go to "Special Character" tab.
In Persian Microsoft keyboard on Windows, pressing Ctrl+Shift+1 generates ZWJ, and Ctrl+Shift+2 generates ZWNJ.
In Linux Persian keyboard, pressing Shift+b generates ZWNJ, and pressing backtick key (`) generates ZWJ.
You can read more here:
In Linux Persian keyboard, pressing Shift+Space generates ZWNJ