CPINFOEXA 結構 (winnls.h)

包含字碼頁的相關資訊。 GetCPInfoEx函式會使用此結構。

語法

typedef struct _cpinfoexA {
  UINT  MaxCharSize;
  BYTE  DefaultChar[MAX_DEFAULTCHAR];
  BYTE  LeadByte[MAX_LEADBYTES];
  WCHAR UnicodeDefaultChar;
  UINT  CodePage;
  CHAR  CodePageName[MAX_PATH];
} CPINFOEXA, *LPCPINFOEXA;

成員

MaxCharSize

字碼頁中字元的最大長度,以位元組為單位。 單一位元組字元集的長度可以是 1 (SBCS) 、2 表示雙位元組字元集 (DBCS) ,或針對其他字元集類型大於 2 的值。 函式無法使用大小來區別 SBCS 或 DBCS 與其他字元集,例如使用 ISCII 或 ISO-2022-xx 字碼頁。

DefaultChar[MAX_DEFAULTCHAR]

將字元字串轉譯為特定字碼頁時所使用的預設字元。 如果未指定明確的預設字元, WideCharToMultiByte 函式就會使用此字元。 預設值通常是字碼頁的 「?」 字元。

LeadByte[MAX_LEADBYTES]

前置位元組範圍的固定長度陣列,其前置位元組範圍的數目是可變的。 如果字碼頁沒有前置位元組,陣列的每個元素都會設定為 Null。 如果字碼頁有前置位元組,陣列會指定每個範圍的起始值和結束值。 範圍包含,而任何字碼頁的範圍上限為五。 陣列會使用兩個位元組來描述每個範圍,並將兩個 Null 位元組當做最後一個範圍之後的結束字元。

注意 某些字碼頁使用前置位元組和其他編碼機制的組合。 此成員通常只會針對某些格式使用前置位元組的字碼頁子集填入。 如需詳細資訊,請參閱<備註>一節。
 

UnicodeDefaultChar

從特定字碼頁翻譯中使用的 Unicode 預設字元。 預設值通常是 「?」 字元或片假名中間點字元。 MultiByteToWideChar函式會使用 Unicode 預設字元。

CodePage

字碼頁值。 此值反映傳遞至 GetCPInfoEx 函式的字碼頁。 如需 ANSI 和其他字碼頁的清單,請參閱 字碼頁識別碼

CodePageName[MAX_PATH]

字碼頁的完整名稱。 請注意,此名稱已當地語系化,且不保證作業系統版本或電腦之間的唯一性或一致性。

備註

前置位元組對於允許超過 256 個字元的 DBCS 字碼頁而言是唯一的。 前置位元組是 DBCS 中 2 位元組字元的第一個位元組。 在每個 DBCS 字碼頁面上,前置位元組佔用特定的位元組值範圍。 此範圍對於不同的字碼頁不同。

前置位元組資訊對大部分的程式字碼頁並不有説明,甚至不會針對許多多位元組編碼提供,例如 UTF-8 和 GB18030。 不建議您的應用程式使用這項資訊來預測 MultiByteToWideCharWideCharToMultiByte 函式的用途。 如果前置位元組後面的位元組未如預期般執行其他預設行為,函式最後可能會使用預設字元或執行其他預設行為。

注意

winnls.h 標頭會將 CPINFOEX 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程式碼,可能會導致編譯或執行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例

規格需求

   
最低支援的用戶端 Windows 2000 專業版 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows 2000 Server [傳統型應用程式 |UWP 應用程式]
標頭 winnls.h (包含 Windows.h)

另請參閱

GetCPInfoEx

MultiByteToWideChar

國家語言支援結構

WideCharToMultiByte