IsTextUnicode 函式 (winbase.h)
判斷緩衝區是否可能包含 Unicode 文字的形式。
語法
BOOL IsTextUnicode(
[in] const VOID *lpv,
[in] int iSize,
[in, out, optional] LPINT lpiResult
);
參數
[in] lpv
要檢查之輸入緩衝區的指標。
[in] iSize
lpv 所表示輸入緩衝區的大小,以位元組為單位。
[in, out, optional] lpiResult
在輸入上,要套用至輸入緩衝區文字的測試指標。 輸出時,此參數會收到指定測試的結果:如果緩衝區的內容通過測試,則為 1,0 表示失敗。 只有輸入至函式時所設定的旗標才會在輸出時相當重要。
如果 lpiResult 為 NULL,函式會使用所有可用的測試來判斷緩衝區中的數據是否可能是 Unicode 文字。
此參數可以是下列一或多個值。 值可以與二進位 「OR」 結合。
值 |
意義 |
- IS_TEXT_UNICODE_ASCII16
|
文字為 Unicode,且只包含零延伸的 ASCII 值 / 字元。
|
- IS_TEXT_UNICODE_REVERSE_ASCII16
|
與上述相同,不同之處在於 Unicode 文字是位元組反轉的。
|
- IS_TEXT_UNICODE_STATISTICS
|
文字可能是 Unicode,透過套用統計分析所做的判斷。 絕對確定性不保證。 請參閱<備註>一節。
|
- IS_TEXT_UNICODE_REVERSE_STATISTICS
|
與上述相同,不同之處在於可能是 Unicode 的文字是位元組反轉的。
|
- IS_TEXT_UNICODE_CONTROLS
|
文字包含其中一或多個非列印字元的 Unicode 表示法:RETURN、LINEFEED、SPACE、CJK_SPACE、TAB。
|
- IS_TEXT_UNICODE_REVERSE_CONTROLS
|
與上述相同,不同之處在於 Unicode 字元會反轉位元組。
|
- IS_TEXT_UNICODE_BUFFER_TOO_SMALL
|
緩衝區中的字元太少,無法進行有意義的分析 (少於兩個字節) 。
|
- IS_TEXT_UNICODE_SIGNATURE
|
文字包含 Unicode 位元組順序標記, (BOM) 0xFEFF 做為其第一個字元。
|
- IS_TEXT_UNICODE_REVERSE_SIGNATURE
|
文字包含 Unicode 位元組反轉位元組順序標記, (反向 BOM) 0xFFFE 做為其第一個字元。
|
- IS_TEXT_UNICODE_ILLEGAL_CHARS
|
文字包含下列其中一個 Unicode 不合法的字元:內嵌的反向 BOM、UNICODE_NUL、CRLF (封裝成單字) 或0xFFFF。
|
- IS_TEXT_UNICODE_ODD_LENGTH
|
字串中的字元數是奇數。 根據) 定義,奇數長度字串無法 (為 Unicode 文字。
|
- IS_TEXT_UNICODE_NULL_BYTES
|
文字包含 Null 位元組,表示非 ASCII 文字。
|
- IS_TEXT_UNICODE_UNICODE_MASK
|
此值是IS_TEXT_UNICODE_ASCII16、IS_TEXT_UNICODE_STATISTICS、IS_TEXT_UNICODE_CONTROLS IS_TEXT_UNICODE_SIGNATURE的組合。
|
- IS_TEXT_UNICODE_REVERSE_MASK
|
值是IS_TEXT_UNICODE_REVERSE_ASCII16、IS_TEXT_UNICODE_REVERSE_STATISTICS、IS_TEXT_UNICODE_REVERSE_CONTROLS IS_TEXT_UNICODE_REVERSE_SIGNATURE的組合。
|
- IS_TEXT_UNICODE_NOT_UNICODE_MASK
|
此值是IS_TEXT_UNICODE_ILLEGAL_CHARS、IS_TEXT_UNICODE_ODD_LENGTH和兩個目前未使用的位旗標的組合。
|
- IS_TEXT_UNICODE_NOT_ASCII_MASK
|
此值是IS_TEXT_UNICODE_NULL_BYTES和目前未使用的三個位旗標的組合。
|
傳回值
如果緩衝區中的數據通過指定的測試,則傳回非零值。 如果緩衝區中的數據未通過指定的測試,函式會傳回 0。
此函式會使用各種統計和決定性方法,在 lpiResult 參數中傳遞的旗標下做出判斷。 當函式傳回時,會使用相同的參數報告這類測試的結果。
IS_TEXT_UNICODE_STATISTICS和IS_TEXT_UNICODE_REVERSE_STATISTICS測試會使用統計分析。 這些測試不是無條件的。 統計測試會假設字串中低位元組和高位元組之間的某些變化量,而某些 ASCII 字串可能會通過。 例如,如果 lpv 指出 ASCII 字串0x41、0x0A、0x0D,0x1D (A\n\r^Z) ,則字元串會通過IS_TEXT_UNICODE_STATISTICS測試,不過失敗會比較理想。
規格需求
需求 |
值 |
最低支援的用戶端 |
Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 |
Windows 2000 Server [僅限傳統型應用程式] |
目標平台 |
Windows |
標頭 |
winbase.h (包含 Windows.h) |
程式庫 |
Advapi32.lib |
Dll |
Advapi32.dll |
另請參閱
Unicode 和字元集函式
Unicode 和字元集