Udostępnij za pośrednictwem


Kształty cyfr

Arabski i wiele innych języków mają klasyczne kształty liczb, które różnią się od konwencjonalnych cyfr zachodnich najczęściej używanych na komputerach. Aby uniknąć niejednoznaczności w nazewnictwie tych kształtów, ten dokument używa następujących nazw ze standardu Unicode.

Nazwa Unicode cyfr Kraj/region, w którym jest używany
Cyfry europejskie Europa, Ameryka i wiele innych krajów/regionów
Arabic-Indic cyfry Kraje arabskie/regiony (chociaż wiele z nich używa cyfr europejskich)
Inne cyfry krajowe: cyfry indyjne, cyfry tajskie i podobne Różne kraje/regiony

 

Unicode udostępnia oddzielne punkty kodu dla każdego kształtu cyfry. W związku z tym, aby uzyskać dostęp do kształtów cyfr języka specjalnego, aplikacja może używać odpowiednich kodów znaków Unicode dla powyższych cyfr, U+0030 do U+0039. Te kody są zawsze wyświetlane z odpowiednim kształtem, pod warunkiem dostępności czcionek.

Kody znaków Unicode od U+0030 do U+0039 nominalnie reprezentują cyfry europejskie od 0 do 9, ale ich kształt cyfry można zmienić. Interfejsy API GDI i DirectWrite tekstu udostępniają mechanizmy kontroli tego zachowania przez aplikacje. (Zobacz na przykład ScriptApplyDigitSubstitution lub IDWriteTextAnalysisSink::SetNumberSubstitution.) Zachowanie niektórych kontrolek powłoki i struktur interfejsu użytkownika może reagować na ustawienia regionalne użytkownika w celu zastąpienia cyfry; LOCALE_IDIGITSUBSTITUTION LCTYPE można użyć do uzyskania domyślnych ustawień podstawienia cyfr dla różnych ustawień regionalnych lub ustawień pulpitu bieżącego użytkownika w celu zastąpienia cyfry.

Cyfry natywne

Cyfry natywne to kształty cyfr wybrane przez użytkownika w arkuszu właściwości Liczba w obszarze opcji regionalnych i językowych panelu sterowania. Aby znaleźć prezentację cyfry preferowaną przez użytkownika, aplikacja używa GetLocaleInfo lub getLocaleInfoEx funkcji z stałą LOCALE_SNATIVEDIGITS reprezentującą informacje regionalne.

Nuta

Zazwyczaj kody cyfrowe Unicode są generowane w rutynowych systemach operacyjnych środowiska uruchomieniowego. W związku z tym typowe systemy operacyjne środowiska uruchomieniowego muszą zostać uaktualnione, aby aplikacja mogła odpowiednio sprawdzić LOCALE_SNATIVEDIGITS.

 

Podstawianie cyfr

Aplikacja może użyć podstawienia cyfr, aby poinformować system operacyjny, jak drukować cyfry U+0030 do U+0039. Stała LOCALE_IDIGITSUBSTITUTION steruje tą operacją.

Kształtowanie cyfr dla pojedynczej funkcji

Funkcje ExtTextOut, GetCharacterPlacementi GCP_RESULTS mają flagi, które zarządzają zastępowaniem kodów Unicode U+0030 do U+0039 przez czas trwania wywołania funkcji. Te flagi zastępują ustawienia regionalne w Panelu sterowania, ale nie resetują ustawień. Ponadto nie zastępują kodów Unicode NADS i NODS. Dostępne są następujące flagi.

Flagi Używane cyfry Używane w
ETO_NUMERICSLATIN Cyfry europejskie ExtTextOut
ETO_NUMERICSLOCAL Cyfry odpowiednie dla ustawień regionalnych ExtTextOut
GCP_NUMERICSLATIN Cyfry europejskie GetCharacterPlacement
GCP_NUMERICSLOCAL Cyfry odpowiednie dla ustawień regionalnych GetCharacterPlacement
GCPCLASS_LATINNUMBER Cyfry europejskie GCP_RESULTS
GCPCLASS_LOCALNUMBER Cyfry odpowiednie dla ustawień regionalnych GCP_RESULTS

 

Informacje o obsłudze języka narodowego

GetLocaleInfo

GetLocaleInfoEx