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。 如果代碼頁有前置位元組,陣列會指定每個範圍的起始值和結束值。 範圍是內含的,且任何代碼頁的最大範圍數目為5。 陣列會使用兩個字節來描述每個範圍,其中兩個 Null 位元組是最後一個範圍之後的終止符。
UnicodeDefaultChar
從特定代碼頁翻譯中使用的 Unicode 預設字元。 默認值通常是 “?” 字元或片假名中間點字元。 MultiByteToWideChar 函式會使用 Unicode 預設字元。
CodePage
代碼頁值。 這個值會反映傳遞至 getCPInfoEx 函式
CodePageName[MAX_PATH]
代碼頁的完整名稱。 請注意,此名稱已當地語系化,且不保證操作系統版本或計算機之間的唯一性或一致性。
言論
前置位元組對於允許超過 256 個字元的 DBCS 代碼頁而言是唯一的。 前置位元組是 DBCS 中 2 位元組位元的第一個字節。 在每個 DBCS 代碼頁中,前置位元組佔用特定位元組值範圍。 不同代碼頁的這個範圍不同。
前置位元組資訊對大多數代碼頁並不十分有説明,甚至不會提供許多多位元組編碼,例如UTF-8和GB18030。 不建議您的應用程式使用這項資訊來預測 MultiByteToWideChar 或
注意
winnls.h 標頭會將 CPINFOEX 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [傳統型應用程式 |UWP 應用程式] |
支援的最低伺服器 | Windows 2000 Server [傳統型應用程式 |UWP 應用程式] |
標頭 | winnls.h (包括 Windows.h) |