Javascript 语言read LTR和RTL中字符串的串联

Javascript 语言read LTR和RTL中字符串的串联,javascript,unicode,concatenation,arabic,right-to-left,Javascript,Unicode,Concatenation,Arabic,Right To Left,我在连接包含阿拉伯字符的字符串时遇到了一些奇怪的行为,虽然我无法阅读阿拉伯文本,但很明显,当uni代码未被使用时,似乎在重新排列文本/字符的顺序,发生了一些奇怪的事情 var concat = "مركز صيانة الإحساء (مركز صيانة ، قطع غيار)" + "\u202a" + "مركز الصيانة" Concat在登录时为我提供了正确的连接,给我- مركز صيانة الإحساء (مركز صيانة ، قطع غيار)‪مركز الصيا

我在连接包含阿拉伯字符的字符串时遇到了一些奇怪的行为,虽然我无法阅读阿拉伯文本,但很明显,当uni代码未被使用时,似乎在重新排列文本/字符的顺序,发生了一些奇怪的事情

var concat = 
"مركز صيانة الإحساء (مركز صيانة ، قطع غيار)" + "\u202a" + "مركز الصيانة"
Concat在登录时为我提供了正确的连接,给我-

مركز صيانة الإحساء (مركز صيانة ، قطع غيار)‪مركز الصيانة
但如果没有unicode,则显示为-

مركز صيانة الإحساء (مركز صيانة ، قطع غيار) مركز الصيانة
哪个是错误的

我知道阿拉伯语是从RTL读来的,这在行为中起着一定的作用。从我所读到的内容来看,我的理解是,当将LTR和RTL语言连接到一个字符串中,而不是将RTL连接到另一个RTL时,会出现类似的问题。我想知道是否有人能帮我理解这一点?谢谢

但如果没有unicode,则显示为-

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

哪个是错误的

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

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

应返回:

مركز صيانة الإحساء (مركز صيانة ، قطع غيار) مركز الصيانة
别让括号把你甩了。任何IDE都会在字符串的右侧显示最后一个括号,但实际上它位于字符串末尾的左侧。检查带有特殊字符(如括号、句点、逗号等)的RTL字符串组合的最佳方法。将字符串粘贴到记事本上,然后单击右侧的ctrl+shift将文本方向更改为从右向左:


杰出的谢谢你。那么,就目前情况而言,没有unicode的原始连接是正确的吗?括号肯定是造成我困惑的原因之一。它基本上是为了在英国进行跟踪。如果我在它前面加上英文字符,那么输出看起来是否仍然正确?