我和一个朋友在开玩笑说 aleph 的。当我尝试输入 א0(切换这两个字符)时,它们自己切换了!任何符号序列都无法阻止这种效果。这是为什么!??
尝试将 0 和 א 反转过来输入这些内容(c&p 代表 א):
א0
א - 0
א \\\ 0
א -./ 0
然而,言语将他们分开
来自 foobar 0
我使用的是 Arch Linux,尚未在其他操作系统上测试过
编辑:数字不必为零。它适用于数字,但不适用于字母。
答案1
'א','希伯来字母 ALEF' (U+05D0)具有 BIDI(双向)类“从右到左 [R]”,因为希伯来语传统上是从右到左书写的。另一方面,数字没有指定特定的方向性,因此整个 aleph 和零块被解释为从右到左。在这种情况下,后面的字符不一定位于前一个字符的右侧,正如 Unicode 相当复杂的双向规则所规定的那样。
您有多种方法可以解决此问题。
您可以使用'ℵ','ALEF 符号' (U+2135)。它是一个符号,具有从左到右的属性:ℵ0。
除了通常的数字
0
,您还可以使用从左到右方向的类似零的字符,例如'〇', '表意数字零' (U+3007)。最干净的方法是使用‘从左到右标记’ (U+200E)特点 (维基百科) 在 aleph 后面:“א0”。这是一个不可见的零宽度字符,定义为具有从左到右的方向性。因此,它对双向文本布局算法的影响与在 א 后插入从左到右的拉丁字母相同,只是那里不会出现可见字母。
答案2
阿莱夫(U+05D0) 是希伯来字母,而希伯来语是从右到左书写的,因此 Unicode 为其分配了“从右到左”的双向类。(看Unicode TR9: 双向算法更多细节。)
拉丁字母当然是“从左到右”的。然而,零(U+0030)属于“欧洲号码”双向类别,这是一个虚弱的类 - 虽然默认情况下是 LtR,但如果它前面有一个“强”从右到左的字符,它可以切换到 RtL。(看双向字符类型和解析弱类型在 TR9 中。
因此,前和后会将整个单词进行交换 – 如果将零放在“之前”,它将显示在右侧;如果将零放在“之后”,它将显示在左侧。
答案3
答案4
希伯来语是从右到左书写的 - 这使得 aleph 字符携带信息,即下一个字符应该被打印左边的。
如果您对文档进行十六进制检查(或在合适的编辑器中使用箭头键将光标移动到文本中),您会注意到,您首先到达的是字母表,然后是数字。
即:“下一个字符 == 右边的字符”的假设不成立。