为什么字母数字字符串中的前导数字被转换为东阿拉伯数字



我正在努力查找阿拉伯语版本的Windows(XP Pro x86 SP3)中出现的(C++)Windows应用程序中的问题。

我们在对话框的静态文本字段中显示如下密码:

0123456789ABC0123456789ABC

某些导致前导数字显示为阿拉伯数字:

٠‎١‎٢‎٣‎٤‎٥‎٦‎٧‎٨‎٩ABC0123456789ABC

请注意,只有前导数字受到影响。这让我觉得是Windows的某些自动功能造成了这种情况,但我搜索了MSDN,没有发现任何线索。我不太了解Windows中从右到左的语言内容(或者阿拉伯语),所以我不确定机制是什么,也不知道如何抑制这种行为。

有过为英语/阿拉伯语编写Windows应用程序经验的人能对此有所了解吗?

谢谢你的帮助。

这被称为上下文数字替换,有时也称为数字整形。正如第二个链接的网页所示,您可以在前缀前加一个U+206F,以强制使用欧洲数字。

最新更新