如何完全禁用我的应用程序(本机 c++)的数字替换(例如印地语数字而不是阿拉伯数字)?
我希望所有数字都显示为 0123 而不是 ٠١٢٣
Windows 中的本地化选项中有一个选项,但我不想为用户更改它。仅适用于我的应用程序。
谢谢!
如何完全禁用我的应用程序(本机 c++)的数字替换(例如印地语数字而不是阿拉伯数字)?
我希望所有数字都显示为 0123 而不是 ٠١٢٣
Windows 中的本地化选项中有一个选项,但我不想为用户更改它。仅适用于我的应用程序。
谢谢!
Not sure if it'll work, but try to call SetLocalInfo
with the LCType parameter set to LOCALE_IDIGITSUBSTITUTION
. Take a look at the MSDN documentation for GetLocalInfo
and SetLocalInfo
.
It does not seem to be possible to change all values programmatically, also I'm not sure if this will only affect the active process. Hope this helps!
你说原生 C++ 并且仍然有一个 WinForms 标签有点困惑......
假设它是一个没有任何 .Net 的本机 C++ 应用程序,我会查看这里SetThreadLocale
描述的函数。
您可以使用 U+FF1x 字符而不是 U+003x,但会产生轻微的印刷后果。