Unicode 零宽度空间与零宽度非连接件

Unicode 零宽度空间与零宽度非连接件,unicode,zero-width-space,Unicode,Zero Width Space,从实际角度来看,(U+200B)和(U+200C)之间有什么区别 我已经读过维基百科的文章,但我不明白这些字符是否可以互换 我认为它们是完全可以互换的,但我不明白为什么Unicode中有两个而不是一个。零宽度非连接符几乎不存在。它的唯一目的是把东西一分为二。例如,123零宽度非joiner 456是两个中间没有任何内容的数字 零宽度空格是一个空格字符,只是一个非常非常窄的字符。例如,123零宽度空格456是两个中间带有空格字符的数字 谢谢,我投了赞成票,但我不明白。在这两种情况下,我们都有介于1

从实际角度来看,(U+200B)和(U+200C)之间有什么区别

我已经读过维基百科的文章,但我不明白这些字符是否可以互换


我认为它们是完全可以互换的,但我不明白为什么Unicode中有两个而不是一个。零宽度非连接符几乎不存在。它的唯一目的是把东西一分为二。例如,123零宽度非joiner 456是两个中间没有任何内容的数字


零宽度空格是一个空格字符,只是一个非常非常窄的字符。例如,123零宽度空格456是两个中间带有空格字符的数字

谢谢,我投了赞成票,但我不明白。在这两种情况下,我们都有介于123和456之间的“某物”。对的对然后,如果我们在纯文本编辑器中键入123,然后键入这些特殊字符456中的任何一个,使用单间距字体,我们将看不到任何空格(即使是非常窄的空格)。对的是的,再一次。那么,它们似乎完全可以互换?但是,为什么我们有2个而不是1个呢?(这是我最初的问题)。所以这有点类似于vs的差异。此外,两者在语义上看起来是一样的,它们是不同的。假设零宽度空间应与regexp中的\s匹配,而非joiner应取消匹配。浏览器支持也可能有所不同。123零宽度非连接456是一个数字(123456),3和4之间没有连接。这里通常不会有连字,所以在这个例子中它的使用是多余的。@RaymondChen好吧,让我们假设我们有一些允许连字的文本,例如,这些特殊字符之一的
ficial
。我们可以使用U+200B和(虽然我还没有测试过)它可以防止
f
I
以及U+200C之间的连接。那么,有什么区别呢?(嗯,也许当我们使用U+200B时,我们有两个不同的词,
of
ficial
,而不是使用U+200C时的单个词
official
)。零宽度非连接符将阻止字符“连接”。例如,f和i不会加入“fi”连字。但真正的用途是复杂的脚本(大多数印度语脚本、阿拉伯语脚本和其他一些脚本)。还有一个匹配的“零宽度接合器”。您可以随时转到来源:(第373、422、452页,等等,只需搜索“零宽度非连接符”和“零宽度连接符”)将连字分开,但不创建分词。零宽度空格是分词符,用于不使用空格分隔单词的语言中。