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 表示失敗。 只有輸入至函式時所設定的旗標才會在輸出時相當重要。

如果 lpiResultNULL,函式會使用所有可用的測試來判斷緩衝區中的數據是否可能是 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 和字元集