2016-07-04 20 views

回答

2

符號د.إ是從右到左的腳本(阿拉伯語),並且每個這些字符的強烈從右到左,而數字和符號$是弱左到右和=是中立的。這意味着通常將左右字符和左右字符混合在一起的算法效果不如我們希望的那樣好。

解決方案是將它後從右到左符號和左至右符號(U + 200E,‎‎)之前明確地把一個從右至左(U + 200F,‏‏) :

$1 = 3.67‏د.إ‎ 

結果:

$1 = 3.67‏د.إ‎ 

(嚴格的說,我們不需要‏以前那樣強烈從右到左的性質確實爲我們,但它是簡單的在兩個明確例)。

這隻有在$的含義清晰的情況下才有意義;作爲比索/美元/埃斯庫多標誌用於31種活躍的貨幣和許許多多的歷史匯率,這是一般最好使用而不是象徵ISO 4217代碼:

1 USD = 3.67 AED 

這也有不需要的優勢以確定哪些貨幣需要明確的ltr和rtl標記,也不必存儲哪些貨幣在數字之前和之後存儲哪些貨幣,因爲ISO 4217代碼始終位於數字之後。