我正在经历连接包含阿拉伯字符的字符串的一些奇怪行为,虽然我无法阅读阿拉伯文字,看起来确实发生了一些奇怪的事情,因为它似乎重新安排了单词时文本/字符的顺序代码未被使用。
var concat =
"مركز صيانة الإحساء (مركز صيانة ، قطع غيار)" + "\u202a" + "مركز الصيانة"
Concat在记录时为我提供了正确的连接,给了我 -
مركز صيانة الإحساء (مركز صيانة ، قطع غيار)مركز الصيانة
但没有unicode显示为 -
مركز صيانة الإحساء (مركز صيانة ، قطع غيار) مركز الصيانة
哪个不正确
我理解阿拉伯语是从RTL中读取的,并且可以在行为中发挥作用。根据我对此的了解,我的理解是,当将LTR和RTL语言连接成一个字符串,而不是将RTL与另一个RTL连接时,就会发生这样的问题。我想知道是否有人能够帮助我理解这一点?感谢
答案 0 :(得分:1)
但没有unicode显示为 -
مركز صيانة الإحساء (مركز صيانة ، قطع غيار) مركز الصيانة
哪个不正确
(作为阿拉伯语和希伯来语的人):上面的字符串是连接的正确输出。因为阿拉伯语是RTL语言,所以连接字符串:
مركز صيانة الإحساء (مركز صيانة ، قطع غيار)
带
مركز الصيانة
应该返回:
مركز صيانة الإحساء (مركز صيانة ، قطع غيار) مركز الصيانة
不要让括号让你失望。任何IDE都会显示字符串右侧侧的最后一个括号,但它实际上位于字符串的左侧侧(末尾)。检查RTL字符串组合的最佳方法是使用括号,句点,逗号等特殊字符。是将字符串粘贴到记事本,然后单击右侧 ctrl + shift 将文本方向更改为从右到左: