Ziffernformen
Arabisch und viele andere Sprachen weisen klassische Formen für Zahlen auf, die sich von den herkömmlichen Westziffern 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.
| Unicode-Name der Ziffern | Land/Region, in der/der verwendet wird |
|---|---|
| Europäische Ziffern | Europa, Nordamerika und viele andere Länder/Regionen |
| Arabic-Indic Ziffern | Arabische Länder/Regionen (obwohl viele europäische Ziffern verwenden) |
| Andere nationale Ziffern: Indic-Ziffern, Thai-Ziffern und Ähnliches | Verschiedene Länder/Regionen |
Unicode stellt separate Codepunkte für jede Ziffernform bereit. Daher kann Ihre Anwendung für den Zugriff auf sondersprachliche Ziffernformen die relevanten Unicode-Zeichencodes für die obigen Ziffern U+0030 bis U+0039 verwenden. Diese Codes werden immer mit der entsprechenden Form angezeigt, je nachdem, welche Schriftart verfügbar ist.
Die Unicode-Zeichencodes U+0030 bis U+0039 stellen nominell die europäischen Ziffern 0 bis 9 dar, ihre Ziffernform kann jedoch geändert werden. GDI- und DirectWrite-Text-APIs bieten Mechanismen für Anwendungen, um dieses Verhalten zu steuern. (Siehe z.B. ScriptApplyDigitSubsun oder IDWriteTextAnalysisSink::SetNumberSubsun.) Das Verhalten in einigen Shell-Steuerelementen und Benutzeroberflächenframeworks reagiert möglicherweise auf Gebietsschemaeinstellungen des Benutzers für die Ziffernersetzung. Der LOCALE _ IDIGITSUBS USERNAME 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 Ziffernersetzung abzurufen.
Native Ziffern
Native Ziffern sind die Ziffernformen, die vom Benutzer im Eigenschaftenblatt Zahl im Bereich regionale und Sprachoptionen des Systemsteuerung ausgewählt werden. Um die vom Benutzer bevorzugte Zifferndarstellung zu ermitteln, 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 ordnungsgemäß überprüft.
Ersetzen von Ziffern
Die Anwendung kann die Ziffernersetzung verwenden, um dem Betriebssystem mitzuteilen, wie die Ziffern U+0030 bis U+0039 gedruckt werden sollen. Die LOCALE _ IDIGITSUBSKONstante steuert diesen Vorgang.
Ziffernstrukturierung für eine einzelne Funktion
Die Funktionen ExtTextOut, GetCharacterPlacementund GCP _ RESULTS verfügen über Flags, die die Ersetzung der Unicode-Codes U+0030 bis 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 NUMMERN 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-ERGEBNISSE |
| GCPCLASS _ LOCALNUMBER | Für das Gebietsschema geeignete Ziffern | _GCP-ERGEBNISSE |