我和一个朋友开玩笑说aleph。尝试键入א0(切换这两个字符)时,他们自己切换了!任何符号序列都不能阻止这种效果。为什么是这样!??
尝试使用0和相反的来键入以下内容(c&p表示א):
א0
א-0
א\\\ 0
א-。/ 0
话却分开了
אfoobar 0
我使用的是Arch Linux,尚未在其他任何操作系统上对此进行测试
编辑:数字不必为零。它适用于数字,但不适用于字母。
ב-5 דקות
在5分钟内输入类似的内容会很烦人。
我和一个朋友开玩笑说aleph。尝试键入א0(切换这两个字符)时,他们自己切换了!任何符号序列都不能阻止这种效果。为什么是这样!??
尝试使用0和相反的来键入以下内容(c&p表示א):
א0
א-0
א\\\ 0
א-。/ 0
话却分开了
אfoobar 0
我使用的是Arch Linux,尚未在其他任何操作系统上对此进行测试
编辑:数字不必为零。它适用于数字,但不适用于字母。
ב-5 דקות
在5分钟内输入类似的内容会很烦人。
Answers:
“א”,“ HEBREW LETTER ALEF”(U + 05D0)具有BIDI(双向)类“从右向左[R]”,因为希伯来语传统上是从右到左书写的。另一方面,没有为数字分配特定的方向性,因此整个aleph和0块都被解释为从右到左。在这种情况下,由于Unicode相当复杂的双向规则要求,后继字符不一定必须位于前一字符的右边。
您可以通过多种方法来解决此问题。
您可以使用'ℵ','ALEF SYMBOL'(U + 2135)。它是一个符号,具有从左到右的属性:: 0。
0
可以使用具有从左到右方向性的类零字符来代替通常的数字,例如'〇','IDEOGRAPHIC NUMBER ZERO'(U + 3007)。
最干净的方法是在字母后缀“א0”后使用“ LEFT-TO-RIGHT MARK”(U + 200E)字符(维基百科)。这是一个不可见的零宽度字符,定义为具有从左到右的方向性。因此,它对双向文本布局算法的影响与在א之后插入从左到右的拉丁字母相同,只是在该位置不会出现可见的字母。
U+202C
当您希望对其进行操作的顶点完成操作时,将它们删除(使用“ pop定向格式”字符)。
Aleph(U + 05D0)是希伯来语字母,并且希伯来语是从右向左书写的,因此Unicode将其分配为“从右向左”双向类。(有关更多详细信息,请参见Unicode TR9:双向算法。)
拉丁字母当然是“从左到右”。但是,“ European Number”双向类中为零(U + 0030),这是一个弱类-尽管LtR默认情况下,如果前面有“强”从右到左字符,则可以切换到RtL。(请参阅TR9中的双向字符类型和解决弱类型。)
结果,之前和之后的方向被整个单词互换了–如果将零放在“之前”,它将显示在右边;如果您输入零个“之后”字母,它将显示在左侧。
0
LTR和RTL语言都使用该数字,因此该软件仅使其与前一个字母的方向相同。如果跟随LTR字符,则为LTR。如果它跟随RTL字母,则为RTL。也有替换它的替代。fileformat.info/info/unicode/char/202d/index.htm
希伯来语是从右到左书写的-这使aleph字符带有以下信息,即下一个字符应打印在该字符的左边。
如果您对文档进行十六进制检查(或在适当的编辑器中使用箭头键在文本中移动光标),您会注意到,首先到达Alpeh,然后到达数字。
即:假设“下一个字符==右边的字符”不成立。
如下面的示例(用记事本++制作)所示,完全有可能在前面加零。
您所看到的,并且如果您尝试标记问题中的字符也会变得很明显,即希伯来语是从右向左书写的,并且(因为直接连接0,所以文本是从右向左(而不是从左向左)处理的)右)的方式。
请参阅第二个示例,以了解Firefox(对我而言)选择明确的问题。
问题是您在哪里执行和执行。要获得希伯来语数字行为,所有字符必须具有从右到左的方向性。在HTML / CSS中是:
<p style="direction:rtl"> א0 0א 0-א א-0 </p>
在操作系统中,必须启用希伯来语和双向功能。
建议使用其他字符作为替代方法的变通办法无法达到Unicode的目的。作为数学运算符的aleph在某些字符集中看起来可能相同,但是在上下文和如何解析方面,它与希伯来语aleph完全不同。例如,如果希伯来语母语者/计算机与希伯来语单词结合使用,将无法正确处理它。如果数字和非字母字符本身没有与字母字符相同的方向编码,则是一个问题。因此,具有讽刺意味的是,数字本身虽然看起来应该独立于字符集/方向性,但仍具有前一个字母的unicode方向性。因此,在希伯来语文档中,数字被“希伯来语化”,即像希伯来语一样定向。鉴于英语-拉丁语文件,