Отключить замену цифр

Как отключить цифровую подстановку (например, для чисел хинди вместо арабских) для моего приложения (native С++) полностью?

Я хочу, чтобы все цифры отображались с 0123 вместо 0123

В настройках локализации есть опция, но я не хочу изменять это для пользователя. Только для моего приложения.

Спасибо!

Ответ 1

Немного смущенный вами, говорящий родной С++ и все еще имеющий тег WinForms...

Предполагая, что это родное приложение на С++ без какой-либо .Net, я бы посмотрел на функцию SetThreadLocale, как описано здесь.

Ответ 2

Не уверен, что это сработает, но попробуйте вызвать SetLocalInfo с параметром LCType, установленным на LOCALE_IDIGITSUBSTITUTION. Взгляните на документацию MSDN для GetLocalInfo и SetLocalInfo. Кажется, что невозможно изменить все значения программно, также я не уверен, что это повлияет только на активный процесс. Надеюсь, это поможет!

Ответ 3

С незначительными типографскими последствиями вы можете использовать символы U + FF1x вместо U + 003x.