当我必须使用这个字符串时,我正在编写一些 Powershell 编码:
`+[char]'ߡ'`
但我必须在结尾的反引号前添加一个“-1”。但无论我在文本编辑器中尝试什么,
`+[char]'ߡ'-1`
结果会是这样的。你也遇到过这种情况吗?
尝试输入:
`+[char]' ''
进入 notepad++ 或者 Chrome 的 Omnibox 等。将光标置于该字符串第 12 个位置(
'
和之间`
),然后输入-1
。
结果正确吗?因为我的电脑结果不正确,在我的其他电脑上结果也不正确。
为什么会发生这种情况?你的电脑也会出现这种情况吗?还是只有我的电脑会出现这种情况?
在 Windows 10 x32 上测试
答案1
你正在经历正确的行为。那个三角形的字符ߡ
是U+07E1 NKO 字母 MA。 这西非文字是从右到左的,因此该字符表现出强烈的 RTL 渲染偏好。连字符在 RTL 方面表现“较弱”,欧洲数字也是如此,但欧洲数字将成为 RTL如果它们后面的第一个强偏好是 RTL。一旦您输入1
,就会发生重新排序,连字符也会随之而来,因为它位于数字和 N'Ko 字母之间。拉丁字母强烈地从左到右,因此它们不会受到影响。
尽管文本似乎被重新排列了,但字符数据并没有改变;实际上-1
位于 N'Ko 字母之后和单引号之外。保存+[char]'ߡ'-1
到.ps1
文件并运行它2016
时不会出现语法错误。此外,将该文本粘贴到 PowerShell 控制台不会产生 RTL 渲染;您只会得到一个框而不是 N'Ko 字母。