UCRT: Gebietsschemanamen, Sprachen und Zeichenfolgen für Länder und Regionen

Sie können das locale Argument auf verschiedene Arten auf dassetlocale Argument , _wsetlocale, _create_localeund _wcreate_locale Funktionen festlegen. Das Gebietsschema kann mithilfe der Gebietsschemanamen, Sprachen, Länder-/Regionscodes und Codeseiten festgelegt werden, die von der Windows NLS-API unterstützt werden. Das locale Argument hat eine der folgenden Formen:

locale :: "gebietsschemaname"
 | "language[_country-region[.Codepage]]"
 | ".Codeseite"
 | "C"
 | ""
 | NULL

Die locale-name-Form ist eine kurze, von der IETF standardisierte Zeichenfolge, z.B. en-US für Englisch (USA) oder bs-Cyrl-BA für Bosnisch (Kyrillisch, Bosnien und Herzegowina). Diese Formen werden bevorzugt. Eine Liste der unterstützten Gebietsschemanamen nach Windows-Betriebssystemversionen finden Sie in der Spalte Sprachtag der Tabelle unter Anhang A: Produktverhalten in [MS-LCID]: Windows-Sprachcodebezeichner – Referenz. Unter dieser Ressource finden Sie die unterstützte Sprache, das Skript und die regionalen Teile der Gebietsschemanamen. Informationen zu den unterstützten Gebietsschemanamen mit nicht standardmäßigen Sortierreihenfolgen finden Sie in der Spalte "Gebietsschemaname" in Bezeichnern der Sortierreihenfolge. Unter Windows 10 und höher sind Gebietsschemanamen zulässig, die gültigen BCP-47-Sprachtags entsprechen. Beispielsweise jp-US ist ein gültiges BCP-47-Tag, aber es ist nur US für Gebietsschemafunktionen effektiv.

Die Sprache[_country-region[.Das Codepage]]-Formular wird in der Gebietsschemaeinstellung für eine Kategorie gespeichert, wenn eine Sprachzeichenfolge oder eine Sprachenzeichenfolge und eine Länder- oder Regionszeichenfolge zum Erstellen des Gebietsschemas verwendet wird. Der Satz der unterstützten Sprachzeichenfolgen wird in Sprachenzeichenfolgen beschrieben, und die Liste der unterstützten Länder- und Regionszeichenfolgen wird in den Zeichenfolgen "Land/Region" aufgeführt. Wenn die angegebene Sprache nicht dem angegebenen Land oder der angegebenen Region zugeordnet ist, wird die Standardsprache für das angegebene Land oder die angegebene Region in der Gebietsschemaeinstellung gespeichert. Wir empfehlen dieses Formular nicht für Gebietsschemazeichenfolgen, die in Code eingebettet sind oder in den Speicher serialisiert sind: Diese Zeichenfolgen werden wahrscheinlich von einem Betriebssystemupdate geändert als das Gebietsschemanamenformular.

Beim code-page-Wert handelt es sich um die dem Gebietsschema zugeordnete ANSI/OEM-Codepage. Die Codepage wird für Sie festgelegt, wenn Sie ein Gebietsschema nur nach Sprache oder nach Sprache und Land/Region angeben. Der spezielle Wert .ACP gibt die ANSI-Codepage für das Land bzw. die Region an. Der spezielle Wert .OCP gibt die OEM-Codepage für das Land bzw. die Region an. Wenn Sie z. B. als Gebietsschema angeben "Greek_Greece.ACP" , wird das Gebietsschema als Greek_Greece.1253 (die ANSI-Codeseite für Griechisch) gespeichert, und wenn Sie als Gebietsschema angeben "Greek_Greece.OCP" , wird es gespeichert als Greek_Greece.737 (die OEM-Codeseite für Griechisch). Weitere Informationen zu Codeseiten finden Sie unter Codeseiten. Eine Liste der unterstützten Codeseiten unter Windows finden Sie unter Codeseitenbezeichner.

Wenn Sie nur die Codeseite verwenden, um das Gebietsschema anzugeben, werden die Standardsprache und das Land/die Region des Benutzers verwendet, wie angegeben GetUserDefaultLocaleName . Wenn Sie beispielsweise ".1254" (ANSI-Code für Türkisch) als Gebietsschema für einen für Englisch (USA) konfigurierten Benutzer angeben, wird English_United States.1254 als Gebietsschema gespeichert. Dieses Formular wird nicht empfohlen, da es zu inkonsistenten Verhaltensweisen führen kann.

Ein locale Argumentwert von C specifies the minimal ANSI conforming environment for C translation. Das C -Gebietsschema geht davon aus, dass jeder char -Datentyp 1 Byte und sein Wert immer kleiner als 256 ist. Wenn locale auf eine leere Zeichenfolge zeigt, ist das Gebietsschema die durch die Implementierung definierte systemeigene Umgebung.

Sie können für die Funktionen setlocale und _wsetlocale alle Gebietsschemakategorien gleichzeitig mithilfe der LC_ALL -Kategorie angeben. Die Kategorien können alle auf das gleiche Gebietsschema festgelegt werden, oder Sie können jede Kategorie einzeln festlegen, indem Sie ein Gebietsschemaargument mit dieser Form verwenden:

LC-ALL-specifier :: locale
 | [LC_COLLATE=locale][;LC_CTYPE=locale][;LC_MONETARY=locale][;LC_NUMERIC=locale][;LC_TIME=locale]

Sie können mehrere Kategorientypen angeben, durch Semikolons getrennt. Kategorietypen, die nicht angegeben werden, verwenden die aktuelle Gebietsschemaeinstellung. Dieser Codeausschnitt legt beispielsweise das aktuelle Gebietsschema für alle Kategorien auf de-DE fest und legt dann die Kategorien LC_MONETARY auf en-GB und LC_TIME auf es-ES fest:

_wsetlocale(LC_ALL, L"de-DE");
_wsetlocale(LC_ALL, L"LC_MONETARY=en-GB;LC_TIME=es-ES");

UTF-8-Unterstützung

DIE UTF-8-Unterstützung kann mithilfe der UTF-8-Codepage in Ihrer Gebietsschemazeichenfolge aktiviert werden. Weitere Informationen finden Sie im Utf-8-Supportabschnitt von setlocale.

Siehe auch

Referenz zur C-Laufzeitbibliothek
_get_current_locale
setlocale, _wsetlocale
_create_locale, _wcreate_locale
Sprachenzeichenfolgen
Zeichenfolgen für Land/Region