共用方式為


codecvt 類別

樣板類別,描述可做為地區設定 facet 的物件。 它可以控制程式內部字元編碼的值序列和程式外部字元編碼的值序列之間的轉換。

template<class CharType, class Byte, class StateType>
    class codecvt : public locale::facet, codecvt_base;

參數

  • CharType
    用於程式內部字元編碼的類型。

  • Byte
    用於程式外部字元編碼的類型。

  • StateType
    類型,可以用來表示字元表示的內部和外部類型之間的轉換中繼狀態。

備註

此樣板類別描述可以做為地區設定 facet 的物件,以控制類型 CharType 的值序列和類型 Byte 的值序列之間轉換。 類別 StateType 表示轉換特性,而類別 StateType 的物件儲存轉換期間任何必要的狀態資訊。

內部編碼使用表示搭配每個字元固定的位元組數,通常是 char 類型或 wchar_t 類型。

如同所有地區設定 facet,靜態物件 id 有初始儲存值零。 第一次嘗試存取它的儲存值時,會在 id 中儲存唯一的正值。

do_indo_out 範本版本永遠傳回 codecvt_base::noconv

Standard C++ 程式庫定義數個明確特製化:

template<>

codecvt<wchar_t, char, mbstate_t>

在 wchar_t 和 char 序列之間轉換。

template<>

codecvt<char16_t, char, mbstate_t>

在編碼為 UTF-16 的 char16_t 序列和編碼為 UTF-8 的 char 序列之間轉換。

template<>

codecvt<char32_t, char, mbstate_t>

在編碼為 UTF-32 (UCS-4) 的 char32_t 序列和編碼為 UTF-8 的 char 序列之間轉換。

建構函式

codecvt

做為地區設定 facet 處理轉換之 codecvt 類別物件的建構函式。

Typedef

extern_type

用於外部表示的字元類型。

intern_type

用於內部表示的字元類型。

state_type

字元類型,用來表示內部和外部表示之間轉換期間的中繼狀態。

成員函式

always_noconv

測試是否不需要完成轉換。

do_always_noconv

虛擬函式,呼叫以測試是否不需要完成轉換。

do_encoding

虛擬函式,測試 Byte 資料流的編碼方式是否為狀態相關,所用的 Byte 和所產生的 CharType 之間的比率是否為常數,而且,如果是的話,判斷該比率的值。

do_in

虛擬函式,呼叫以將內部 Byte 序列轉換為外部 CharType 序列。

do_length

虛擬函式,判斷外部 Byte 指定的序列有多少個 Byte 產生不超過指定的內部 CharType 數目,並傳回 Byte 的數字。

do_max_length

虛擬函式,傳回產生一個內部 CharType 所需的外部 Byte 數目上限。

do_out

虛擬函式,呼叫以將內部 CharType 序列轉換為外部 Byte 序列。

do_unshift

虛擬函式,呼叫以提供狀態相關轉換所需的 Byte,以完成 Byte 序列的最後一個字元。

encoding

測試 Byte 資料流的編碼方式是否為狀態相關,所用的 Byte 和所產生的 CharType 之間的比率是否為常數,而且,如果是的話,判斷該比率的值。

in

Byte 序列的外部表示轉換為 CharType 序列的內部表示。

length

判斷外部 Byte 指定的序列有多少個 Byte 產生不超過指定的內部 CharType 數目,並傳回 Byte 的數字。

max_length

傳回產生一個內部 CharType 所需的外部 Byte 數目上限。

out

將內部 CharType 序列轉換為外部 Byte 序列。

unshift

提供狀態相關轉換所需的 Byte,以完成 Byte 序列的最後一個字元。

需求

標頭:<locale>

命名空間: std

請參閱

參考

<locale>

字碼頁

地區設定名稱、語言和國家/地區字串

C++ 標準程式庫中的執行緒安全