windows - 为什么字母数字字符串中的前导数字会转换为东部阿拉伯数字?

标签 windows arabic right-to-left

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

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

0123456789ABC0123456789ABC

...并且某些东西导致前导数字显示为阿拉伯数字:

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

请注意,只有前导数字受到影响。这让我认为Windows的某些自动功能导致了这种情况,但我搜索了MSDN并没有找到任何线索。我不太了解 Windows 中从右到左的语言(或阿拉伯语),因此我不确定其机制是什么,或者如何抑制这种行为。

任何有编写英语/阿拉伯语 Windows 应用程序经验的人都可以阐明这一点吗?

感谢您的帮助。

最佳答案

这被称为 contextual digit substitution ,有时也称为 digit shaping 。正如第二个链接网页所示,您可以添加 U+206F 前缀来强制使用欧洲数字。

关于windows - 为什么字母数字字符串中的前导数字会转换为东部阿拉伯数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9877014/

相关文章:

ios - 如何检查字符串是否包含阿拉伯字符

android - textview不是从右到左虽然从右到左设备

HTML5 页面语言、方向和编码

php - 使用 UTF8 编码阿拉伯语

c++ - CPP - 将源代码从 Windows 转换为 Linux

asp.net - 如何将旧的.NET项目切换到Linux?

windows - Elasticsearch:如何减少主分片的数量?

python - 为什么 Python 无法识别阿拉伯字符?

css - rtl wordpress 站点宽度大得离谱

c++ - 如何每 x 秒调用一个函数