3

In Dynamics CRM 2015 I am using an ExecuteFetch request to query data. I need the resultset XML as response.

In the resultset the formatted value in every currency field shows a question mark between the currency symbol and the amount:

<creditlimit formattedvalue="€?12,345.00">12345</creditlimit>

The question mark appears to be a character with hex code 0x200e. According to unicodemap.org this is a left-to-right mark. My customer reported this issue on their brand-new CRM 2015 deployment. I could reproduce it on my local development environment as well, which is up-to-date with the most recent RU.

Anybody experienced this before? Why is it there? (For now I removed it using a regex.)

Henk van Boeijen
  • 7,357
  • 6
  • 32
  • 42
  • My guess would be that it is inserted to avoid what is shown in this example here, https://en.wikipedia.org/wiki/Left-to-right_mark#Example_of_use_in_HTML – `C++` becomes `++C`, if the text gets displayed in an RTL environment. So they probably want to ensure that even in that scenario, the currency symbol gets displayed before the amount. – CBroe Dec 14 '15 at 13:35
  • @CBroe: that's a viable explanation. So, it's by design. You can add that as an answer, thanks! My customer's legacy software stumbled on this issue, because way back in time someone decided to use money display values for interfacing amounts. Meanwhile Microsoft must have decided the formatting needed improvement, which in itself is fine. – Henk van Boeijen Dec 14 '15 at 14:51

1 Answers1

1

My guess would be that it is inserted to avoid what is shown in this example here, https://en.wikipedia.org/wiki/Left-to-right_mark#Example_of_use_in_HTML:

Suppose the writer wishes to use some English text (a left-to-right text) into a paragraph written in Arabic or Hebrew (a right-to-left text) with non-alphabetic characters to the right of the English text. For example, the writer wants to translate, "The language C++ is a programming language used..." into Arabic. Without an LRM control character, the result looks like this:

‫ لغة C++ هي لغة برمجة تستخدم...

With an LRM entered in the HTML after the ++, it looks like this, as the writer intends:

‫ لغة C++‎ هي لغة برمجة تستخدم...

So they probably want to ensure that even in that scenario, the currency symbol gets displayed before the amount.

CBroe
  • 91,630
  • 14
  • 92
  • 150