2016-07-04 436 views

回答

2

符号د.إ是从右到左的脚本(阿拉伯语),并且每个这些字符的强烈从右到左,而数字和符号$是弱左到右和=是中立的。这意味着通常将左右字符和左右字符混合在一起的算法效果不如我们希望的那样好。

解决方案是将它后从右到左符号和左至右符号(U + 200E,‎‎)之前明确地把一个从右至左(U + 200F,‏‏) :

$1 = 3.67‏د.إ‎ 

结果:

$1 = 3.67‏د.إ‎ 

(严格的说,我们不需要‏以前那样强烈从右到左的性质确实为我们,但它是简单的在两个明确例)。

这只有在$的含义清晰的情况下才有意义;作为比索/美元/埃斯库多标志用于31种活跃的货币和许许多多的历史汇率,这是一般最好使用而不是象征ISO 4217代码:

1 USD = 3.67 AED 

这也有不需要的优势以确定哪些货币需要明确的ltr和rtl标记,也不必存储哪些货币在数字之前和之后存储哪些货币,因为ISO 4217代码始终位于数字之后。