Фигуры цифр
Арабский и многие другие языки имеют классические формы для чисел, которые отличаются от обычных западных цифр, которые чаще всего используются на компьютерах. Чтобы избежать неоднозначности при именовании этих фигур, в этом документе используются следующие имена из стандарта Юникода.
Имя цифр в Юникоде | Страна или регион, где используется |
---|---|
Европейские цифры | Европа, Северная и Южная Америка и многие другие страны и регионы |
Arabic-Indic цифры | Арабские страны и регионы (хотя многие используют европейские цифры) |
Другие национальные цифры: индийские цифры, тайские цифры и т. н. | Различные страны и регионы |
Юникод предоставляет отдельные кодовые точки для каждой фигуры цифры. Таким образом, для доступа к специальным языковым цифрам приложение может использовать соответствующие коды символов Юникода для приведенных выше цифр, от U+0030 до U+0039. Эти коды всегда отображаются с соответствующей фигурой в зависимости от доступности шрифта.
Символьные коды Юникода от U+0030 до U+0039 номинально представляют европейские цифры от 0 до 9, но их форму цифр можно изменить. Api-интерфейсы GDI и DirectWrite текста предоставляют приложениям механизмы для управления этим поведением. (См., например, ScriptApplyDigitSubstitution или IDWriteTextAnalysisSink::SetNumberSubstitution.) Поведение в некоторых элементах управления оболочки и платформах пользовательского интерфейса может реагировать на параметры языкового стандарта пользователя для подстановки цифр; LOCALE_IDIGITSUBSTITUTION LCTYPE можно использовать для получения параметров подстановки цифр по умолчанию для различных языковых стандартов или параметров рабочего стола текущего пользователя для подстановки цифр.
Собственные цифры
Собственные цифры — это фигуры, выбранные пользователем на странице свойств Number в части региональных и языковых параметров панель управления. Чтобы найти представление цифр, предпочитаемое пользователем, приложение использует функцию GetLocaleInfo или GetLocaleInfoEx с константой LOCALE_SNATIVEDIGITS , представляющей сведения о языковом стандарте.
Примечание
Как правило, цифровые коды Юникода создаются в подпрограммах операционной системы среды выполнения. Таким образом, необходимо обновить общие операционные системы среды выполнения, чтобы приложение проверяло LOCALE_SNATIVEDIGITS соответствующим образом.
Подстановка цифр
Приложение может использовать подстановку цифр, чтобы сообщить операционной системе, как печатать цифры от U+0030 до U+0039. Константой LOCALE_IDIGITSUBSTITUTION управляет этой операцией.
Формирование цифр для одной функции
Функции ExtTextOut, GetCharacterPlacement и GCP_RESULTS имеют флаги, управляющие подстановкой кодов Юникода от U+0030 до U+0039 на время вызова функции. Эти флаги переопределяют региональные параметры в панель управления, но не сбрасывают параметры. Кроме того, они не переопределяют коды Юникода NADS и NODS. Доступны следующие флаги.
Флаги | Используемые цифры | Используется в |
---|---|---|
ETO_NUMERICSLATIN | Европейские цифры | ExtTextOut |
ETO_NUMERICSLOCAL | Цифры, соответствующие языковому стандарту | ExtTextOut |
GCP_NUMERICSLATIN | Европейские цифры | GetCharacterPlacement |
GCP_NUMERICSLOCAL | Цифры, соответствующие языковому стандарту | GetCharacterPlacement |
GCPCLASS_LATINNUMBER | Европейские цифры | GCP_RESULTS |
GCPCLASS_LOCALNUMBER | Цифры, соответствующие языковому стандарту | GCP_RESULTS |
Связанные темы