UCRT 地區設定名稱、語言和國家/地區字串
您可以使用數種方式,將 引數設定 locale
為 setlocale
、 _wsetlocale
_create_locale
、 和 _wcreate_locale
函式。 您可以使用 Windows NLS API 所支援的地區設定名稱、語言、國家/地區代碼和字碼頁來設定地區設定。 自 locale
變數採用下列其中一種形式:
locale
::「 locale-name 」
|「 language [_ country-region [. code-page ]]」
|".字碼頁 」
| "C"
|""
| NULL
locale-name 格式是簡短的 IETF 標準化字串;例如, en-US
代表英文 (美國) 或 bs-Cyrl-BA
代表波士尼亞文 (斯拉夫,波士尼亞赫塞哥維納)。 這些是慣用格式。 如需依作業系統版本分類的支援地區設定名稱清單,請參閱<[MS-LCID]:Windows 語言代碼識別碼 (LCID) 參考>中的附錄 A:產品行為 \(英文\) 中之表格的 [Language tag] \(語言標記\) 欄。 這項資源列出所支援的語言、指令碼和地區部分的地區設定名稱。 如需具有非預設排序次序之支援地區設定名稱的資訊,請參閱 排序次序識別碼 中的 地區設定名稱 資料行。 Windows 10 或更新版本會允許對應至有效 BCP-47 語言標記的地區設定名稱。 例如, jp-US
是有效的 BCP-47 標記,但實際上僅適用于 US
地區設定功能。
language [ _ country-region [ . 字碼頁 ]] 表單會儲存在類別的地區設定中,當語言字串或語言字串和國家或地區字串用來建立地區設定時。 語言字串中 會描述一組支援的語言字串 ,且支援的國家/地區字串清單中會列出 支援的國家/地區字串 清單。 如果指定的語言未與指定的國家或地區相關聯,則指定國家或地區的預設語言會儲存在地區設定中。 我們不建議將此表單用於內嵌在程式碼中的地區設定字串,或序列化為儲存體:作業系統更新可能會變更這些字串,而不是地區設定名稱表單。
code-page 是與地區設定相關聯的 ANSI/OEM 字碼頁。 當您以語言或是以語言和國家/地區指定地區設定時,便會為您判定字碼頁。 特殊值 .ACP
會指定國家/地區的 ANSI 字碼頁。 特殊值 .OCP
會指定國家/地區的 OEM 字碼頁。 例如,如果您指定 "Greek_Greece.ACP"
為地區設定,地區設定會儲存為 Greek_Greece.1253
(希臘文的 ANSI 字碼頁),而如果您指定 "Greek_Greece.OCP"
為地區設定,則會儲存為 Greek_Greece.737
(希臘文的 OEM 字碼頁)。 如需字碼頁的詳細資訊,請參閱 字碼頁 。 如需 Windows 上支援的字碼頁清單,請參閱 字碼頁識別碼 。
如果您只使用字碼頁來指定地區設定,則會使用使用者 GetUserDefaultLocaleName
的預設語言和國家/地區。 例如,如果您指定 ".1254"
(ANSI 土耳其文) 作為配置英文 (美國) 使用者的地區設定,儲存的地區設定便是 English_United States.1254
。 我們不建議使用此表單,因為它可能會導致不一致的行為。
的 locale
C
引數值會指定 C 轉譯的最低 ANSI 符合環境。 C
地區設定會假設每個 char
資料類型都是 1 位元組,而其值永遠小於 256。 如果 locale
指向空字串,地區設定即是由實作環境決定的原生環境。
藉由使用 setlocale
分類,可以為 _wsetlocale
和 LC_ALL
函式同時指定所有地區設定分類。 藉由使用具有此格式的地區設定引數,您可以將分類全設定為相同的地區設定,或是為每個分類個別設定:
LC-ALL-specifier
::locale
|[LC_COLLATE=
locale
][;LC_CTYPE=
locale
][;LC_MONETARY=
locale
][;LC_NUMERIC=
locale
][;LC_TIME=
locale
]
您可以指定多個分類類型,並以分號隔開。 未指定的類別類型會使用目前的地區設定。 例如,這個程式碼片段會將所有分類的目前地區設定設為 de-DE
,然後將分類 LC_MONETARY
設為 en-GB
,並將 LC_TIME
設為 es-ES
:
_wsetlocale(LC_ALL, L"de-DE");
_wsetlocale(LC_ALL, L"LC_MONETARY=en-GB;LC_TIME=es-ES");
UTF-8 支援
您可以在地區設定字串中使用 UTF-8 字碼頁來啟用 UTF-8 支援。 如需詳細資訊,請參閱 的 setlocale
UTF-8 支援一節。
另請參閱
C 執行時間程式庫參考
_get_current_locale
setlocale
, _wsetlocale
_create_locale
, _wcreate_locale
語言字串
國家/地區字串