我和一个朋友在拿 aleph 开玩笑。在尝试输入 ?0 (切换这 2 个字符)时,他们切换了自己!任何符号序列都不会阻止这种效果。为什么是这样!??
尝试使用 0 和 ? 反转(c&p 为?):
?0
? - 0
? \\\ 0
? -./ 0
然而,文字将它们分开
? foobar 0
我在 arch linux 上,还没有在任何其他操作系统上测试过
编辑:数字不必为零。它适用于数字,但不适用于字母。
use*_*686 196
Aleph ( U+05D0 ) 是一个希伯来字母,而希伯来字母是从右到左书写的,因此 Unicode 将其指定为“从右到左”双向类。(有关更多详细信息,请参阅Unicode TR9:双向算法。)
拉丁字母当然是“从左到右”。但是,零 ( U+0030 ) 属于“欧洲数字”双向类,这是一个弱类——而 LtR 默认情况下,如果在它之前有一个“强”从右到左字符,它可以切换到 RtL。(参见双向字符类型和解决TR9 中的弱类型。)
结果,整个单词的before和after的方向交换了——如果你把零放在 'before' 上,它会显示在右边;如果你在 aleph 之后写零,它会出现在左边。
IS4*_*IS4 109
'?', 'HEBREW LETTER ALEF' (U+05D0)具有 BIDI(双向)类“从右到左 [R]”,因为希伯来语传统上是从右到左书写的。另一方面,数字没有分配给它们的特定方向,因此整个 aleph 和零块被解释为从右到左。在这种情况下,后面的字符可能不一定位于前面字符的右侧,因为 Unicode 相当复杂的双向规则规定。
您有多种选择可以解决此问题。
您可以使用'?', 'ALEF SYMBOL' (U+2135)。它是一个符号,具有从左到右的属性:?0。
除了通常的 digit 0,您可以使用具有从左到右方向性的类似零的字符,例如'?', 'IDEOGRAPHIC NUMBER ZERO' (U+3007)。
最简洁的方法是在 aleph 之后使用“左到右标记”(U+200E)字符(维基百科):“? 0”。这是一个不可见的零宽度字符,定义为具有从左到右的方向性。因此,它对双向文本布局算法的影响与在 ? 后面插入一个从左到右的拉丁字母相同,只是那里不会出现可见的字母。
wvx*_*xvw 21
也许,实现这一目标的更好方法是:
echo -e "\u200F0?"
Run Code Online (Sandbox Code Playgroud)
和强制性的 xkcd 参考https://xkcd.com/1137/
Set*_*eth 14
完全有可能在前面有一个零,如下面在 Notepad++ 中制作的示例所示。
如果您尝试标记问题中的字符,您所看到的并且也变得显而易见的是,希伯来语是从右到左书写的,并且(因为 0 直接连接)文本是从右到左(而不是左)处理的向右)方式。
请参阅第二个示例,了解 Firefox(在我这边)有明确选择的问题。
Eug*_*eck 13
希伯来语是从右到左书写的 - 这使得 aleph 字符携带信息,即下一个字符应该打印在它的左边。
如果您对文档进行十六进制检查(或在合适的编辑器中使用箭头键在文本中移动光标),您会注意到,您首先到达 alpeh,然后到达数字。
即:假设“下一个字符 == 右边的字符”不成立。
| 归档时间: |
|
| 查看次数: |
14476 次 |
| 最近记录: |