次の方法で共有


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 テキストである可能性が高いかどうかを判断します。

このパラメーターには、次の 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 と文字セット