语言中字符串的连接读取 LTR 和 RTL

concatenation of strings in languages read LTR and RTL

我在连接包含阿拉伯字符的字符串时遇到了一些奇怪的行为,虽然我无法阅读阿拉伯文本,但看起来确实发生了一些奇怪的事情,因为它似乎重新安排了文本/字符的顺序未使用 uni 代码。

var concat = 
"مركز صيانة الإحساء (مركز صيانة ، قطع غيار)" + "\u202a" + "مركز الصيانة"

Concat 在登录时为我提供了正确的连接,给了我 -

مركز صيانة الإحساء (مركز صيانة ، قطع غيار)‪مركز الصيانة

但没有 unicode 显示为 -

مركز صيانة الإحساء (مركز صيانة ، قطع غيار) مركز الصيانة

这是不正确的

我了解阿拉伯语是从 RTL 读取的,并且在行为中发挥作用。从我读到的关于此的内容来看,我的理解是,当将 LTR 和 RTL 语言连接成一个字符串而不是将 RTL 与另一个 RTL 连接时,会出现此类问题。我想知道是否有人能够帮助我理解这一点?谢谢

but without the unicode appears as -

مركز صيانة الإحساء (مركز صيانة ، قطع غيار) مركز الصيانة

which is incorrect

(作为讲阿拉伯语和希伯来语的人):上面的字符串是 正确的 串联输出。因为阿拉伯语是一种 RTL 语言,所以连接字符串:

مركز صيانة الإحساء (مركز صيانة ، قطع غيار)

مركز الصيانة

应该return:

مركز صيانة الإحساء (مركز صيانة ، قطع غيار) مركز الصيانة

不要让方括号让您失望。任何 IDE 都会在字符串的 right 一侧显示最后一个括号,但它实际上在 left 一侧(最后) 的字符串。检查包含特殊字符(如方括号、句点、逗号等)的 RTL 字符串组合的最佳方法。就是将字符串粘贴到记事本中,点击右边ctrl + shift 将文字方向改为从右到左: