分享方式:


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 分類,可以為 _wsetlocaleLC_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
語言字串
國家/地區字串