I’m trying to track down a problem in a (C++) Windows application that occurs in the Arabic-language version of Windows (XP Pro x86 SP3).
We’re displaying a password like the following in a static text field in a dialog box:
0123456789ABC0123456789ABC
…and something is causing the leading digits to be displayed as Arabic numerals:
٠١٢٣٤٥٦٧٨٩ABC0123456789ABC
Note that only the leading digits are affected. That makes me think that some automatic facility of Windows is causing this, but I’ve searched MSDN and found no clues. I don’t know much about the right-to-left language stuff in Windows (or Arabic for that matter), so I’m not sure what the mechanism might be, or how to suppress this behavior.
Can anyone with experience writing Windows apps for English/Arabic shed any light on this?
Thanks for any help.
This is known as contextual digit substitution, sometimes also called digit shaping. As the second linked Web page indicates, you can prefix a U+206F to force European digits.