Share via


地區設定和字碼頁

地區設定識別碼會反映特定地理區域的本機慣例和語言。 一種指定語言可以在一個以上的國家/地區使用,例如巴西和葡萄牙都說葡萄牙語。 反過來說,一個國家/地區可能有一種以上的官方語言。 例如,加拿大有兩種語言:英文和法文。 因此,加拿大有兩個不同的地區設定:加拿大-英文和加拿大-法文。 有些與地區設定相關的類別含有日期格式和貨幣值的顯示格式。

語言決定文字和日期格式的轉換,而國家/地區決定當地慣例。 每個語言都有一個唯一的對應,以字碼頁表示,其中包含字母表以外的字元(例如標點符號和數位)。 字碼頁是字元集,與語言相關。 因此, 地區設定 是語言、國家/地區和字碼頁的唯一組合。 呼叫 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 是寬字元字串。

另請參閱

Unicode 和 MBCS
字元集可移植性的優點