共用方式為


CPINFOEXW 結構 (winnls.h)

包含代碼頁的相關信息。 GetCPInfoEx 函式會使用此結構。

語法

typedef struct _cpinfoexW {
  UINT  MaxCharSize;
  BYTE  DefaultChar[MAX_DEFAULTCHAR];
  BYTE  LeadByte[MAX_LEADBYTES];
  WCHAR UnicodeDefaultChar;
  UINT  CodePage;
  WCHAR CodePageName[MAX_PATH];
} CPINFOEXW, *LPCPINFOEXW;

成員

MaxCharSize

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

DefaultChar[MAX_DEFAULTCHAR]

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

LeadByte[MAX_LEADBYTES]

鉛位元組範圍的固定長度陣列,其中潛在客戶位元組範圍的數目是可變的。 如果代碼頁沒有前置位元組,陣列的每個元素都會設定為 NULL。 如果代碼頁有前置位元組,陣列會指定每個範圍的起始值和結束值。 範圍是內含的,且任何代碼頁的最大範圍數目為5。 陣列會使用兩個字節來描述每個範圍,其中兩個 Null 位元組是最後一個範圍之後的終止符。

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

UnicodeDefaultChar

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

CodePage

代碼頁值。 這個值會反映傳遞至 getCPInfoEx 函式 代碼頁。 如需 ANSI 和其他代碼頁的清單,請參閱 代碼頁識別碼

CodePageName[MAX_PATH]

代碼頁的完整名稱。 請注意,此名稱已當地語系化,且不保證操作系統版本或計算機之間的唯一性或一致性。

言論

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

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

注意

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

要求

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

另請參閱

GetCPInfoEx

MultiByteToWideChar

國家語言支持結構

WideCharToMultiByte