AED (Î.å ) 货币符号使用问题。它向左移动

2024-01-09

在我的应用程序中,我需要显示货币换算。

For eg:

1 ₹= 0.015 $

同样,我想显示从 AED 到 USD 的转换。当我尝试时,转换方程变得扭曲。

1 د.إ = 0.99 $ 

符号 È.Í 采用从右到左的脚本(阿拉伯语),其中每个字符都是强从右到左的,而数字和 $ 符号是弱从左到右的,= 是中性的。这意味着通常能够很好地将从左到右和从右到左的字符混合在一起的算法并不像我们希望的那样好。

解决方案是显式地放置一个从右到左(U+200F,‏ ‏) 在从右到左的符号和从左到右的标记 (U+200E,‎ ‎)之后:

$1 = 3.67‏د.إ‎

Result:

$1 = 3.67‏د.إ‎ 

(严格来说我们不需要‏之前,因为强烈的从右到左的性质为我们做到了这一点,但在这两种情况下都更明确)。

这仅在 $ 含义明确的情况下才有意义;由于比索/美元/埃斯库多符号用于 31 种活跃货币和大量历史货币,因此通常最好使用 ISO 4217 代码而不是符号:

1 USD = 3.67 AED

这样做的优点还在于,不需要计算出哪些货币需要明确的 ltr 和 rtl 标记,也不必存储哪些货币将符号放置在数字之前和之后,因为 ISO 4217 代码始终位于数字之后。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AED (Î.å ) 货币符号使用问题。它向左移动 的相关文章