Formen von Ziffern
Arabisch und viele andere Sprachen haben klassische Formen für Zahlen, die sich von den herkömmlichen westlichen Ziffern unterscheiden, die am häufigsten auf Computern verwendet werden. Um Mehrdeutigkeiten bei der Benennung dieser Formen zu vermeiden, verwendet dieses Dokument die folgenden Namen aus dem Unicode-Standard.
Unicodename der Ziffern | Land/Region, in dem/der verwendet wird |
---|---|
Europäische Ziffern | Europa, Nord- und Südamerika und viele andere Länder/Regionen |
Arabic-Indic Ziffern | Arabische Länder/Regionen (obwohl viele europäische Ziffern verwenden) |
Andere nationale Ziffern: Indische Ziffern, thailändische Ziffern usw. | Verschiedene Länder/Regionen |
Unicode stellt separate Codepunkte für jede Ziffernform bereit. Daher kann Ihre Anwendung für den Zugriff auf spezielle Formen von Sprachziffern die relevanten Unicode-Zeichencodes für die obigen Ziffern verwenden, U+0030 bis U+0039. Diese Codes werden immer mit der entsprechenden Form angezeigt, sofern die Schriftart verfügbar ist.
Die Unicode-Zeichencodes U+0030 bis U+0039 stellen die europäischen Ziffern 0 bis 9 nominal dar, aber ihre Ziffernform kann geändert werden. GDI und DirectWrite Text-APIs bieten Mechanismen für Anwendungen, um dieses Verhalten zu steuern. (Siehe instance, ScriptApplyDigitSubstitution oder IDWriteTextAnalysisSink::SetNumberSubstitution.) Das Verhalten in einigen Shellsteuerelementen und Benutzeroberflächenframeworks reagiert möglicherweise auf Einstellungen des Benutzergebietsschemas für die Ersetzung von Ziffern; der LOCALE_IDIGITSUBSTITUTION LCTYPE kann verwendet werden, um Standardeinstellungen für die Ersetzung von Ziffern für verschiedene Gebietsschemas oder die Desktopeinstellungen des aktuellen Benutzers für die Ersetzung von Ziffern abzurufen.
Native Ziffern
Native Ziffern sind die Ziffernformen, die der Benutzer im Bereich Der Regions- und Sprachoptionen des Systemsteuerung im Eigenschaftenblatt Number ausgewählt hat. Um die vom Benutzer bevorzugte Zifferndarstellung zu finden, verwendet Ihre Anwendung die GetLocaleInfo - oder GetLocaleInfoEx-Funktion mit der LOCALE_SNATIVEDIGITS Konstante, die die Gebietsschemainformationen darstellt.
Hinweis
In der Regel werden Unicode-Zifferncodes in Laufzeitbetriebssystemroutinen generiert. Daher müssen Common Runtime-Betriebssysteme aktualisiert werden, damit die Anwendung LOCALE_SNATIVEDIGITS entsprechend überprüfen kann.
Ziffernersetzung
Die Anwendung kann die Ziffernersetzung verwenden, um dem Betriebssystem mitzuteilen, wie die Ziffern U+0030 bis U+0039 gedruckt werden sollen. Die LOCALE_IDIGITSUBSTITUTION-Konstante steuert diesen Vorgang.
Digit Shaping für eine einzelne Funktion
Die Funktionen ExtTextOut, GetCharacterPlacement und GCP_RESULTS verfügen über Flags, die die Ersetzung von Unicode-Codes U+0030 durch U+0039 für die Dauer des Funktionsaufrufs steuern. Diese Flags überschreiben regionale Einstellungen im Systemsteuerung, setzen die Einstellungen jedoch nicht zurück. Außerdem überschreiben sie nicht die Unicode-Codes NADS und NODS. Die folgenden Flags sind verfügbar.
Flags | Verwendete Ziffern | Verwendung in |
---|---|---|
ETO_NUMERICSLATIN | Europäische Ziffern | ExtTextOut |
ETO_NUMERICSLOCAL | Für das Gebietsschema geeignete Ziffern | ExtTextOut |
GCP_NUMERICSLATIN | Europäische Ziffern | GetCharacterPlacement |
GCP_NUMERICSLOCAL | Für das Gebietsschema geeignete Ziffern | GetCharacterPlacement |
GCPCLASS_LATINNUMBER | Europäische Ziffern | GCP_RESULTS |
GCPCLASS_LOCALNUMBER | Für das Gebietsschema geeignete Ziffern | GCP_RESULTS |
Zugehörige Themen