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 テキストである可能性が高いかどうかを判断します。
このパラメーターには、次の 1 つ以上の値を指定できます。 値はバイナリ "OR" と組み合わせることができます。
値 |
意味 |
- IS_TEXT_UNICODE_ASCII16
|
テキストは Unicode で、0 個の拡張 ASCII 値/文字のみが含まれます。
|
- IS_TEXT_UNICODE_REVERSE_ASCII16
|
Unicode テキストがバイト反転されることを除き、前と同じです。
|
- IS_TEXT_UNICODE_STATISTICS
|
テキストはおそらく Unicode であり、統計分析を適用して決定されます。 絶対的な確実性は保証されません。 「解説」を参照してください。
|
- IS_TEXT_UNICODE_REVERSE_STATISTICS
|
上記と同じですが、Unicode の可能性があるテキストがバイト反転されている点が除きます。
|
- IS_TEXT_UNICODE_CONTROLS
|
テキストには、RETURN、LINEFEED、SPACE、CJK_SPACE、TAB の 1 つ以上の非印刷文字の Unicode 表現が含まれています。
|
- IS_TEXT_UNICODE_REVERSE_CONTROLS
|
前と同じですが、Unicode 文字はバイト反転されます。
|
- IS_TEXT_UNICODE_BUFFER_TOO_SMALL
|
バッファー内に意味のある分析用の文字が少なすぎます (2 バイト未満)。
|
- IS_TEXT_UNICODE_SIGNATURE
|
テキストには、最初の文字として0xFEFF Unicode バイトオーダー マーク (BOM) が含まれています。
|
- IS_TEXT_UNICODE_REVERSE_SIGNATURE
|
テキストには、最初の文字として0xFFFE Unicode バイト逆バイト順マーク (逆引き BOM) が含まれています。
|
- IS_TEXT_UNICODE_ILLEGAL_CHARS
|
テキストには、埋め込まれた逆引き BOM、UNICODE_NUL、CRLF (1 つの単語にパック)、または0xFFFFのいずれかの Unicode に無効な文字が含まれています。
|
- 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、および現在使用されていない 2 つのビット フラグの組み合わせです。
|
- IS_TEXT_UNICODE_NOT_ASCII_MASK
|
値は、IS_TEXT_UNICODE_NULL_BYTESと現在使用されていない 3 つのビット フラグの組み合わせです。
|
戻り値
バッファー内のデータが指定したテストに合格した場合は、0 以外の値を返します。 バッファー内のデータが指定したテストに合格しない場合、関数は 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 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー |
Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム |
Windows |
ヘッダー |
winbase.h (Windows.h を含む) |
Library |
Advapi32.lib |
[DLL] |
Advapi32.dll |
こちらもご覧ください
Unicode 関数と文字セット関数
Unicode と文字セット