That's the key to the no-op idea. The no-op character could not ever be assumed to survive interchange with another process. It'd be canonically equivalent to the absence of character. It could be added or removed at any position by a Unicode-conformant process. A program could wipe all the no-ops from a string it has received, and insert its own for its own purposes. (In fact, it should wipe the old ones so as not to confuse itself.) It's "another process's discardable junk" unless known, internally-only, to be meaningful at a particular stage.
While all the various (non)joiners/ignorables are interesting, none of them have this property. In fact, that might be the best description: It's not just an "ignorable", it's a "discardable". Unicode doesn't have that, does it? -----Original Message----- From: Unicode [mailto:unicode-boun...@unicode.org] On Behalf Of Richard Wordingham via Unicode Sent: Saturday, June 22, 2019 20:59 To: unicode@unicode.org Cc: Shawn Steele Subject: Re: Unicode "no-op" Character? If they're conveying an invisible message, one would have to strip out original ZWNBSP/WJ/ZWSP that didn't affect line-breaking. The weak point is that that assumes that line-break opportunities are well-defined. For example, they aren't for SE Asian text. Richard.