IsDBCSLeadByteEx 函式 (winnls.h)

判斷指定的字元是否可能是前置位元組。 前置位元組是 雙位元組位元集中雙位元組位元 的第一個字節, (代碼頁的 DBCS) 。

語法

BOOL IsDBCSLeadByteEx(
  [in] UINT CodePage,
  [in] BYTE TestChar
);

參數

[in] CodePage

用來檢查潛在客戶位元組範圍的代碼頁標識碼。 此參數可以是 Unicode 和字元集常數 中定義的其中一個代碼頁識別碼,或下列其中一個預先定義的值。 此函式只會驗證代碼頁 932、936、949、950 和 1361 中的前置位元組值。

意義
CP_ACP
使用系統預設的 Windows ANSI 代碼頁。
CP_MACCP
使用系統預設Macintosh代碼頁。
CP_OEMCP
使用系統預設 OEM 代碼頁。
CP_THREAD_ACP
使用目前線程的 Windows ANSI 代碼頁。

[in] TestChar

要測試的字元。

傳回值

如果位元組是前置位元組,則傳回非零值。 如果位元組不是前置位元組,或字元是單一位元組位元元,則此函式會傳回0。 若要取得擴充的錯誤資訊,應用程式可以呼叫 GetLastError

備註

注意 此函式不會驗證尾端位元組是否存在或有效性。 因此, MultiByteToWideChar 可能無法辨識使用 IsDBCSLeadByte 報告作為潛在客戶位元組的應用程式順序。 應用程式可以輕鬆地隨著 MultiByteToWideChar 的結果而變得未同步處理,可能會導致未預期的錯誤或緩衝區大小不符。
 
一般而言,應用程式應該使用 MultiByteToWideChar 將數據轉換成 UTF-16,並在該編碼中使用它,而不是嘗試對代碼頁數據進行低階操作。

前置位元組值專屬於每個不同的 DBCS。 某些位元組值可以在單一代碼頁中顯示為 DBCS 字元的前置和尾端位元組。 因此, IsDBCSLeadByteEx 只能指出潛在的前置位元元組值。

為了瞭解 DBCS 字串,應用程式通常會從字元串開頭開始,並向前掃描、追蹤遇到前置位元組時,以及將下一個字節視為相同字元的尾端部分。 若要備份,應用程式應該使用 CharPrevExA ,而不是嘗試開發自己的演算法。

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows 2000 Server [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 winnls.h (包含 Windows.h)
程式庫 Kernel32.lib
DLL Kernel32.dll

另請參閱

MultiByteToWideChar

Unicode 和字元集函式

Unicode 和字元集

WideCharToMultiByte