Talk:Zero-width non-joiner

Clarification, please
a ZWNJ causes them to be printed in their final and initial forms, respectively

What does "final and initial forms" mean? An example might be useful. —Preceding unsigned comment added by 78.149.238.101 (talk) 12:13, 10 March 2010 (UTC) kcylsnavS 14:07, 17 April 2012 (UTC)
 * AGREE - "When placed between two characters that would otherwise be connected into a ligature, a ZWNJ causes them to be printed in their final and initial forms, respectively." Could we please have a very clear, single example of this, with pictures, understandable to ppl like me who are good in American English but have no knowledge of other letterforms. Perhaps an example using ff, fi, or something similar.

Similarity to the Unit Separator character
Simply, understand ZWNJ as a hidden separator code that is used to intervene between two character codes that otherwise would cause the font to generate a ligature giving a new shape (glyph) for the combined two letters. The terms 'final', 'initial' explain the visible result of this in individual orthographies. I added the comment about US control code that does the same job as ZWNJ.JC (talk) 17:40, 29 June 2014 (UTC)


 * JC has referred to U+001F (Unit Separator) here and in two other sections (see and ), but I see no evidence that this information separator was ever intended for any purpose other than delimiting data at the smallest of the four levels provided by information separators (think of CSVs, which only have two information separators, traditionally comma and line feed). (Looking at the revision history, Macrakis was also concerned with the lack of citation,  the "dubious" marker.) Sure, any non-printing character can serve this purpose, but that doesn't mean it is supposed to. I have  JC's paragraph about the Unit Separator character due to its lack of citations. I assume JS misinterpreted the name "Unit Separator", somehow concluding it referred to glyphs. Adam KatzΔ☎  22:43, 16 April 2024 (UTC)

Comment
My hebrew is old and broken, but there's no vav in the second variant in the hebrew example at all. I'd fix it, but I'm not sure what correct is. 98.216.109.205 (talk) 20:58, 6 April 2009 (UTC)

A ZWNJ of your very own
>&#8204;< Between these arrows.

usage in Latin script
I found that in Windows Vista's Notepad, both zero-width joiner and zero-width non joiner cause to break the fi ligature, while according to this article, only ZWNJ should do so. Is it desired behaviour, or probably a bug in Vista text rendering engine?--Azarien (talk) 18:54, 23 June 2009 (UTC)

(Late entry for late readers) Great question. Actually, ZWNJ and ZWJ were designed to help with the so-called complex scripts. The fonts of these languages understand what ZWJ means. It tells the font to join the two glyphs on either side if they have a ligature. (The first one entered could be a glyph of a ligature and the second a Unicode character). ZWNJ is simply a dummy hidden character that makes in the eyes of the font that they are not adjoining ones that may form a ligature.

What we need in Latin scripts is anything hidden that keeps two letters apart that might otherwise combine into a ligature. The better one to use for Latin is the single-byte control code US, Unit Separator. Add it to your keyboard if you type Fraktur or any such.JC (talk) 17:55, 29 June 2014 (UTC)
 * No, ZWNJ is applicable for Latin script also. The German keyboard standard DIN 2137 (2012 edition) has a key combination for this (AltGr + ".") on its extended T2 layout. It is not only applicable for Fraktur but also for Roman, as ligatures like "fi" are subject to German orthography rules (they must not occur at the boundaries of constituents within composite words). -- Karl432 (talk) 19:03, 29 June 2014 (UTC)
 * I understand, what I say is that US does it too. I had ZWNJ for Singhala for like a decade at AltGr-/. Then when few days back I saw that I could type US directly in HTML editors, I changed that position to US. Anyway, it is individual preference, and I respect yours most humbly.JC (talk) 19:25, 29 June 2014 (UTC)

Malayalam Wikipedia
In Malayalam Wikipedia, many articles using ZWNJ sign. Why? Triwikanto (talk) 14:05, 25 December 2009 (UTC)

The German sample
I have changed the German sample so it now really uses the ZWNJ. Before, it used the precomposed ligature characters U+FB01 Latin Small Ligature fi (ﬁ) and U+FB03 Latin Small Ligature ffi (ﬃ). While this was obviously an attempt to force the displayal of the effect of the ZWNJ, I think this was bad practice. For one, the use of those precomposed ligature characters is discouraged by Unicode. They serve the only purpose of compatibility with legacy character encodings. But more important, this article is about the ZWNJ, so I think an example of the ZWNJ's effect should really be an example of the ZWNJ.

I know that many combinations of browsers and fonts will not be able to really show this distinction (actually, I think that of this moment, only recent Gecko browsers will be able to do ligatures). But if we want to make sure that the effect is illustrated regardless of browser and font settings, then we should not recur to a messy workaround with questionable characters, but to a picture. -- machᵗᵃˡᵏ 14:38, 18 June 2010 (UTC)


 * Agreed. The best way to show different renderings reliably is with an image. --Macrakis (talk) 14:58, 18 June 2010 (UTC)
 * if hardly any browser will show the effect of ZWNJ correctly, then a workaround should be used to display the effect, in my opinion. there is no point in having the example use the ZWNJ if its effects end up being invisible for the reader.82.176.211.89 (talk) 01:03, 18 July 2011 (UTC)
 * Sure, and as we have already said, the workaround should be pictures. So I am doing it now. -- mach 🙈🙉🙊 08:31, 18 July 2011 (UTC)
 * Thank you for this, this made the examples far clearer.Rody1990 (talk) 21:42, 23 July 2011 (UTC)

Since these posts are four years old, I am writing to clarify the ligature situation as I understand to update the current knowledge about fonts and ligatures and the role of ZWNJ. OpenType standard, now OpenFont standard, allows anyone to create ligatures anyway they wish -- make them in the Private Use Area (PUA). This is why Unicode discourages use of hard coded ligatures they had initially for English. I created a font for romanized Singhala that has over 2000 Sanskrit ligatures all in the PUA, used here:lovatasinghala.com. Since Singhala orthography does not allow ligatures, you need to use a hidden character to keep the font from making ligatures when there is an overlap of Singhala and Sanskrit, though not too frequently. I used ZWNJ, but now realized that Unit Separator control code (US) is already there for Latin and it is easier to use when typing text anywhere and coding web pages.

Using graphics for ligatures is unnecessary. Now even IE shows ligatures correctly. Microsoft Word 2013 showed ligatures briefly and after an update reverted to inappropriately spacing words. This is just how technology progresses. Ligatures are not much of a issue for Latin script users, though most developers and more importantly, those who make standards and write programs belong to that group. This is why I romanized Singhala knowing that otherwise Indic scripts will never be used by the ordinary user threatening the existence of the scripts.JC (talk) 19:13, 29 June 2014 (UTC)

More on the table
What is the purpose of the 'display' columns? If they are rendered correctly, they are essentially the same as the 'picture' column. If they are rendered incorrectly, they do not show the effect of the zwnj and can only confuse the user. Wikipedia pages don't exist to help users find bugs in their browsers, after all....

As for the 'code' columns, they don't clearly show what is going on, since they show the text with ligature and LTR processing. They should have spaces (or maybe zwnj's) between all characters to indicate what the unprocessed character sequence is. --Macrakis (talk) 20:10, 29 June 2014 (UTC)


 * In case the reader's display doesn't render the forms correctly, the Display columns show the reader how this code sequence would look in a proper display. I have added a note above the table to explain this, and also enlarged the Farsi and Hebrew Displays to make comparison easier. --Thnidu (talk) 19:31, 7 October 2017 (UTC)

External links modified
Hello fellow Wikipedians,

I have just modified 2 one external links on Zero-width non-joiner. Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:
 * Added archive http://web.archive.org/web/20120708235820/http://persian.nmelrc.org:80/persianword/zwnj.htm to http://persian.nmelrc.org/persianword/zwnj.htm
 * Added archive http://web.archive.org/web/20120708235820/http://persian.nmelrc.org:80/persianword/zwnj.htm to http://persian.nmelrc.org/persianword/zwnj.htm

When you have finished reviewing my changes, please set the checked parameter below to true or failed to let others know (documentation at ).

Cheers.— InternetArchiveBot  (Report bug) 11:22, 21 July 2016 (UTC)