Поделиться через


Фигуры цифр

Арабский и многие другие языки имеют классические формы для чисел, которые отличаются от обычных западных цифр, которые чаще всего используются на компьютерах. Чтобы избежать неоднозначности при именовании этих фигур, в этом документе используются следующие имена из стандарта Юникода.

Имя цифр в Юникоде Страна или регион, где используется
Европейские цифры Европа, Северная и Южная Америка и многие другие страны и регионы
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

 

Сведения о поддержке национальных языков

GetLocaleInfo

GetLocaleInfoEx