我和一个朋友开玩笑说aleph。尝试键入א0(切换这两个字符)时,他们自己切换了!任何符号序列都不能阻止这种效果。为什么会这样呢??

尝试键入0并颠倒א(对于א来说,c&p):

א0

-0

א\\\ 0

א-。/ 0

单词分开但

אfoobar 0

我在arch linux上,尚未在任何其他OS上进行过测试。

编辑:数字不必为零。它适用于数字,但不适用于字母。

评论

乍一看,我以为你疯了。原来,这只是使用不同语言方向的人工制品。好问题!

对于编写希伯来语文本,此顺序很有意义。否则,键入ב-5דקות之类的东西(5分钟之内)会很烦人。

@jamesqf:有一个,请参阅IllidanS4的帖子。

@ jamesqf,Unicode中存在希伯来字母,用于编写希伯来语。而且我敢说,我们中写希伯来语的人数(约700万人)比写基数基数的人数更多。

@ugoren可以说有130k数学家,但实际上,数学是通用语言,所以真的有ℵ₀。

#1 楼

“א”,“ HEBREW LETTER ALEF”(U + 05D0)具有BIDI(双向)类“从右向左[R]”,因为希伯来语传统上是从右到左书写的。另一方面,没有为数字分配特定的方向性,因此整个aleph和0块都被解释为从右到左。在这种情况下,由于Unicode相当复杂的双向规则要求,后一个字符不一定位于前一个字符的右边。

您有多种选择来解决此问题。


您可以使用'ℵ','ALEF SYMBOL'(U + 2135)。它是一个符号,具有从左到右的属性:ℵ0。
可以使用具有从左到右方向性的类零字符来代替通常的数字0,例如'〇','IDEOGRAPHIC零号(U + 3007)。
最干净的方法是在字母后缀“א0”后使用“左向右标记”(U + 200E)字符(维基百科)。这是一个不可见的零宽度字符,定义为具有从左到右的方向性。因此,它对双向文本布局算法的影响与在א之后插入从左到右的拉丁字母相同,只是在此处看不到可见字母。


评论


在数学上下文中(我希望是这样),U + 2135是要使用的正确字符。

–cmbuckley
17年7月31日在13:46

您必须小心使用覆盖-将它们放置在文本中时,重要的是,当您希望对它们进行操作的顶点完成操作时,将它们删除(使用“ pop定向格式”字符U + 202C)是很重要的。

–... J ...
17年7月31日在14:01

同样,“ override”字符有点过大,对于该用例,“ embedded”就足够了。还有一个称为“隔离”的新类,不确定这种情况下的区别。

–Random832
17年7月31日在14:48

我建议交换2和3。

– wizzwizz4
17年7月31日在15:19

@ Random832所有这些都是矫kill过正。您真正需要的只是Alef和零之间的从左到右的标记(U + 200E)。这样,您也不需要任何额外的“流行”字符。

–伊尔马里·卡洛宁(Ilmari Karonen)
17年7月31日在17:31

#2 楼

Aleph(U + 05D0)是希伯来语字母,并且希伯来语是从右向左书写的,因此Unicode将其分配为“从右向左”双向类。 (有关更多详细信息,请参见Unicode TR9:双向算法。)

拉丁字母当然是“从左到右”。但是,“ European Number”双向类中的零(U + 0030)是弱类–虽然LtR默认情况下,但如果前面有“强”从右到左字符,则可以切换到RtL。 (请参阅TR9中的双向字符类型和解决弱类型。)因此,整个单词的前和后方向都被交换了-如果将零放在“前”,它将显示在右边如果您输入零个“之后”字母,它将显示在左侧。

评论


在希伯来语中键入文本时,这在许多文本编辑器和网站中都是一个非常普遍的问题-我想其他从右到左的语言也是如此。随着时间的推移,它肯定会变得更好,但是请想象一下要尝试写一个单词问题-反复在希伯来语单词(例如aleph字符)和数字(例如0字符)之间来回切换...

–杰克
17年7月31日在18:09

@Walt我见过的大多数教科书都是“沉浸式”类型,它使用极其简单的希伯来语,但几乎完全使用希伯来语。用语言教语言似乎违反直觉,但它允许语言技能更有机地建立。您可能会看到音译或翻译的内联内容(例如lh4.ggpht.com/-_Vc8TUDwznQ/UlhaLFjnrGI/AAAAAAAAzQK/_zm4BMC0aLw/…-“ Shalom Kita Aleph” =“ Hello First Grade”)

–杰克
17年7月31日在20:50

@杰克啊,这是有道理的。我唯一真正学过的外语是拉丁语。我们的教科书通常主要是英文的,只有一小部分拉丁文来解释每一章,直到整个课堂形式从“学习拉丁文”转变为“一次翻译这整篇史诗”,学年”。

–锡精灵
17年7月31日在20:55

@沃尔特:我认为可能会有误会。如果我键入一个拉丁(LTR)词,然后键入一个希伯来语(RTL)词,然后键入另一个拉丁词,则我可以自由地将它们全部放在一个句子中,只有希伯来语单词会呈现RTL。所有这些都旨在轻松放入同一句话中。问题在于LTR和RTL语言都使用数字0,因此该软件仅使其与前一个字母的方向相同。如果跟随LTR字符,则为LTR。如果它跟随RTL字母,则为RTL。也有替换它的替代。 fileformat.info/info/unicode/char/202d/index.htm

–鸭鸭
17年7月31日在23:19



零不会成为RTL-它仍然是LTR,即使希伯来语在周围,数字序列也会从左到右显示,但是嵌入级别以这种方式相互作用,即零出现在左侧。希伯来语字符按存储顺序位于其前面。 (Unicode双向性很复杂。)

– user2357112支持Monica
17年8月1日在7:48

#3 楼

也许,实现此目标的更好方法是:

echo -e "\u200F0א"


以及强制性xkcd参考https://xkcd.com/1137/



#4 楼

如下面在Notepad ++中创建的示例所示,完全有可能在前面加上零。



您看到的内容也很明显,如果尝试标记您的问题中的字符,是希伯来语是从右向左书写的,并且(由于直接连接0,所以文本是从右向左(而不是从左至右)处理的。)

查看第二个示例,了解Firefox(最后)对Firefox的困扰,并有一个明确的选择。



评论


这是一个糟糕的建议,因为它会按照实际的角色顺序进行游戏,以便获得特定的视觉顺序。其他答案解释了为什么会发生这种情况,其中一些答案包括正确的处理方式(覆盖和明确的方向标记)。

–德龙
17年7月31日在14:01

您能否指出我在哪里提供某种形式的建议?我只是在说明发生的情况,确实可以有一个后缀数字,并提供有关其发生原因的信息。

–赛斯
17年8月1日,下午5:51

#5 楼

希伯来语是从右到左书写的-这使aleph字符带有信息,下一个字符应打印在它的左边。

如果您对文档进行十六进制检查(或在文本中移动光标)并在合适的编辑器中使用箭头键),您会注意到,首先进入阿尔卑斯山,然后到达数字。

即:假设“下一个字符==右边的字符”确实不抱。

#6 楼

א0 0א0-אא-0

问题在于执行此操作的位置和实现方式。
要获得希伯来语数字行为,所有字符都必须具有从右到左的方向性。在以下HTML / CSS中:

<p style="direction:rtl"> א0 0א 0-א א-0 </p>


在操作系统中,必须启用希伯来语和双向功能。

建议的解决方法使用其他字符作为替代字符,会破坏Unicode的目的。作为数学运算符的aleph在某些字符集中看起来可能相同,但是就上下文和如何解析而言,它与希伯来语aleph完全不同。例如,与希伯来语单词结合使用时,希伯来语母语人士/计算机将无法正确处理它。如果数字和非字母字符本身没有与字母字符相同的方向编码,则是一个问题。因此,具有讽刺意味的是,尽管数字本身看起来应该独立于字符集/方向性,但仍具有前一个字母的unicode方向性。因此,在希伯来语文档中-数字被“希伯来语化”,即像希伯来语一样定向。鉴于英语-拉丁语文档中的希伯来字母可以混合使用,因为该段落缺乏方向性。

评论


OP试图使用aleph作为数字运算符,不是吗?

–user1686
17年8月7日在7:34

好吧,在帖子中根本不清楚。无论如何,方向性都不重要。 Aleph用在集合符号中,并具有一个无限的,无限的系列名称。它应该方向从左到右,因为所有数学都从左到右,而不管您使用什么语言。但是,在希伯来语中将aleph用作字符是从右向左设置的。

– Danny F
17年8月8日14:11



#7 楼

可能是:

א0

א-0

\ \ 0

א-。 / 0

foobar 0

(此答案未回答“这是为什么”,因为它已经被其他人回答。但是它确实回答了标题,“不可能...?”)

评论


但是它也不能解决问题,因此几乎没有用。

– NH。
17年8月3日在17:43

#8 楼

如果您在正确支持的编辑器中复制א,则实际上更加明显!像(是的,老套)Chrome网址多功能框。它的整体风格将改变。另外,您可能会很感兴趣,就像使用Ohm vs Omega(在TrueType和OpenType字体文件中通常会误认为.Omega字形不是U + 2126(Ohm),而是U + 03A9(Omega))进行数学计算一样,使用ℵ,而不是א。