地區設定和字碼頁
地區設定標識碼會反映特定地理區域的本機慣例和語言。 一種指定語言可以在一個以上的國家/地區使用,例如巴西和葡萄牙都說葡萄牙語。 反過來說,一個國家/地區可能有一種以上的官方語言。 例如,加拿大有兩種語言:英文和法文。 因此,加拿大有兩個不同的地區設定:加拿大-英文和加拿大-法文。 有些與地區設定相關的類別含有日期格式和貨幣值的顯示格式。
語言決定文字和日期格式的轉換,而國家/地區決定當地慣例。 每個語言都有一個唯一的對應,以代碼頁表示,其中包含字母表以外的字元(例如標點符號和數位)。 代碼頁是字元集,與語言相關。 因此, 地區設定 是語言、國家/地區和代碼頁的唯一組合。 呼叫 setlocale 函式,即可在運行時間變更地區設定和代碼頁設定。
不同的語言可能會使用不同的代碼頁。 例如,ANSI 代碼頁 1252 用於英文和大部分歐洲語言,而 ANSI 代碼頁 932 則用於日文漢字。 幾乎所有代碼頁都會共用最低 128 個字元的 ASCII 字元集(0x00為 0x7F)。
任何單一位元組代碼頁都可以在數據表中表示(具有 256 個專案),以將位元組值對應至字元(包括數位和標點符號),或字元。 任何多位元組代碼頁也可以表示為非常大型的數據表(具有64K個專案)對字元的雙位元組值。 不過,在實務上,通常會以前 256 個字元的數據表表示,並以雙位元組值的範圍表示。
如需字碼頁的詳細資訊,請參閱 Code Pages。
C 執行時間連結庫有兩種類型的內部代碼頁:地區設定和多位元組。 您可以在程式執行期間變更目前的代碼頁(請參閱 setlocale 和 _setmbcp 函式的檔案)。 此外,運行時間連結庫可能會取得並使用操作系統代碼頁的值,這是程式執行持續時間的常數。
當地區設定代碼頁變更時,地區設定相依函式集的行為會變更為所選代碼頁所指定的行為。 根據預設,所有地區設定相依函式都會以地區設定代碼頁唯一的 「C」 地區設定開始執行。 您可以呼叫 setlocale
函式來變更內部地區設定代碼頁(以及其他地區設定特定屬性)。 對 (LC_ALL, “”) 的呼叫 setlocale
會將作業系統用戶地區設定所指示的地區設定設定。
同樣地,當多位元組代碼頁變更時,多位元組函式的行為會變更為所選代碼頁所決定的行為。 根據預設,所有多位元組函式都會以對應至操作系統預設代碼頁的多位元組代碼頁開始執行。 您可以呼叫 _setmbcp
函式來變更內部多位元組代碼頁。
C 執行時間函 setlocale
式會設定、變更或查詢部分或所有目前程式的地區設定資訊。 _wsetlocale例程是的寬字元版本setlocale
;的自變數和傳回值_wsetlocale
是寬字元字串。