读取LTR和RTL

时间:2018-01-17 14:12:29

标签: javascript unicode concatenation arabic right-to-left

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

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

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

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

但没有unicode显示为 -

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

哪个不正确

我理解阿拉伯语是从RTL中读取的,并且可以在行为中发挥作用。根据我对此的了解,我的理解是,当将LTR和RTL语言连接成一个字符串,而不是将RTL与另一个RTL连接时,就会发生这样的问题。我想知道是否有人能够帮助我理解这一点?感谢

1 个答案:

答案 0 :(得分:1)

  

但没有unicode显示为 -

     

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

     

哪个不正确

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

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

مركز الصيانة

应该返回:

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

不要让括号让你失望。任何IDE都会显示字符串右侧侧的最后一个括号,但它实际上位于字符串的左侧侧(末尾)。检查RTL字符串组合的最佳方法是使用括号,句点,逗号等特殊字符。是将字符串粘贴到记事本,然后单击右侧 ctrl + shift 将文本方向更改为从右到左:

enter image description here