Символ د.إ в правом к левому скрипту (арабский) и каждый из этих персонажей сильно справа налево, а цифры и символ $ слабо влево-вправо и = нейтрально. Это означает, что алгоритм, который обычно делает хорошую работу по смешиванию слева направо и справа налево символов, не работает так, как мы можем надеяться здесь.
Решение состоит в том, чтобы явно поставить правильный налево (U + 200F, ‏
‏
) перед правым налево символ и знак слева-направо (U + 200E, ‎
‎
) после него :
$1 = 3.67‏د.إ‎
Результат:
$1 = 3.67د.إ
(строго говоря, мы не нуждаемся в ‏
перед тем, как сильно справа налево природа делает это для нас, но это проще быть явным в обоих случаев).
Это имеет смысл только в контексте, когда смысл значения $ ясен; как знак песо/доллар/эскудо используются для 31 активных валют и очень многих исторических валют, это как правило, лучше использовать код ISO 4217 вместо символа:
1 USD = 3.67 AED
Это также имеет то преимущество, не нуждаясь чтобы определить, какие валюты нуждаются в явных отметках ltr и rtl, а также не хранить, какие валюты помещают символ перед номером, и который после того, как коды ISO 4217 всегда поступают после номера.