Share via


IsTextUnicode-Funktion (winbase.h)

Bestimmt, ob ein Puffer wahrscheinlich eine Form von Unicode-Text enthält.

Syntax

BOOL IsTextUnicode(
  [in]                const VOID *lpv,
  [in]                int        iSize,
  [in, out, optional] LPINT      lpiResult
);

Parameter

[in] lpv

Zeiger auf den zu untersuchenden Eingabepuffer.

[in] iSize

Größe des durch lpv angegebenen Eingabepuffers in Bytes.

[in, out, optional] lpiResult

Zeigen Sie bei der Eingabe auf die Tests, die auf den Eingabepuffertext angewendet werden sollen. Bei der Ausgabe empfängt dieser Parameter die Ergebnisse der angegebenen Tests: 1, wenn der Inhalt des Puffers einen Test bestanden hat, 0 für Fehler. Nur Flags, die bei der Eingabe an die Funktion festgelegt werden, sind bei der Ausgabe von Bedeutung.

Wenn lpiResultNULL ist, verwendet die Funktion alle verfügbaren Tests, um zu bestimmen, ob die Daten im Puffer wahrscheinlich Unicode-Text sind.

Dieser Parameter kann einen oder mehrere der folgenden Werte aufweisen. Werte können mit dem binären "OR" kombiniert werden.

Wert Bedeutung
IS_TEXT_UNICODE_ASCII16
Der Text ist Unicode und enthält nur erweiterte ASCII-Werte/Zeichen mit Null.
IS_TEXT_UNICODE_REVERSE_ASCII16
Identisch mit dem vorherigen Text, mit der Ausnahme, dass der Unicode-Text byteumgekehrt ist.
IS_TEXT_UNICODE_STATISTICS
Der Text ist wahrscheinlich Unicode, wobei die Bestimmung durch die Anwendung statistischer Analyse vorgenommen wird. Absolute Sicherheit ist nicht garantiert. Weitere Informationen finden Sie im Abschnitt mit den Hinweisen.
IS_TEXT_UNICODE_REVERSE_STATISTICS
Identisch mit dem vorherigen, mit dem Unterschied, dass der Text, der wahrscheinlich Unicode ist, byteumgekehrt ist.
IS_TEXT_UNICODE_CONTROLS
Der Text enthält Unicode-Darstellungen eines oder mehrerer dieser Nichtdruckzeichen: RETURN, LINEFEED, SPACE, CJK_SPACE, TAB.
IS_TEXT_UNICODE_REVERSE_CONTROLS
Identisch mit dem vorherigen, mit der Ausnahme, dass die Unicode-Zeichen byteumgekehrt sind.
IS_TEXT_UNICODE_BUFFER_TOO_SMALL
Der Puffer enthält zu wenige Zeichen für eine aussagekräftige Analyse (weniger als zwei Bytes).
IS_TEXT_UNICODE_SIGNATURE
Der Text enthält die Unicode-Byte-Order-Markierung (BOM) 0xFEFF als erstes Zeichen.
IS_TEXT_UNICODE_REVERSE_SIGNATURE
Der Text enthält die Unicode-Byte-Reverse-Order-Markierung (Reverse BOM) 0xFFFE als erstes Zeichen.
IS_TEXT_UNICODE_ILLEGAL_CHARS
Der Text enthält eines dieser ungültigen Unicode-Zeichen: eingebettete reverse BOM, UNICODE_NUL, CRLF (in ein Wort gepackt) oder 0xFFFF.
IS_TEXT_UNICODE_ODD_LENGTH
Die Anzahl der Zeichen in der Zeichenfolge ist ungerade. Eine Zeichenfolge ungerade Länge darf (per Definition) nicht Unicode-Text sein.
IS_TEXT_UNICODE_NULL_BYTES
Der Text enthält NULL-Bytes, die auf Nicht-ASCII-Text hinweisen.
IS_TEXT_UNICODE_UNICODE_MASK
Der Wert ist eine Kombination aus IS_TEXT_UNICODE_ASCII16, IS_TEXT_UNICODE_STATISTICS, IS_TEXT_UNICODE_CONTROLS, IS_TEXT_UNICODE_SIGNATURE.
IS_TEXT_UNICODE_REVERSE_MASK
Der Wert ist eine Kombination aus 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
Der Wert ist eine Kombination aus IS_TEXT_UNICODE_ILLEGAL_CHARS, IS_TEXT_UNICODE_ODD_LENGTH und zwei derzeit nicht verwendeten Bitflags.
IS_TEXT_UNICODE_NOT_ASCII_MASK
Der Wert ist eine Kombination aus IS_TEXT_UNICODE_NULL_BYTES und drei derzeit nicht verwendeten Bitflags.

Rückgabewert

Gibt einen Ungleichwert zurück, wenn die Daten im Puffer die angegebenen Tests bestanden. Die Funktion gibt 0 zurück, wenn die Daten im Puffer die angegebenen Tests nicht bestehen.

Hinweise

Diese Funktion verwendet verschiedene statistische und deterministische Methoden, um ihre Bestimmung unter der Kontrolle von Flags zu treffen, die im lpiResult-Parameter übergeben werden. Wenn die Funktion zurückgibt, werden die Ergebnisse solcher Tests mit demselben Parameter gemeldet.

Die IS_TEXT_UNICODE_STATISTICS und IS_TEXT_UNICODE_REVERSE_STATISTICS Tests verwenden statistische Analysen. Diese Tests sind nicht narrensicher. Bei den statistischen Tests wird davon ausgegangen, dass bestimmte Mengen an Variationen zwischen niedrigen und hohen Bytes in einer Zeichenfolge vorhanden sind, und einige ASCII-Zeichenfolgen können durchrutschen. Wenn lpv beispielsweise die ASCII-Zeichenfolge 0x41, 0x0A, 0x0D, 0x1D (A\n\r^Z) angibt, besteht die Zeichenfolge den IS_TEXT_UNICODE_STATISTICS-Test, obwohl ein Fehler vorzuziehen wäre.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile winbase.h (einschließlich Windows.h)
Bibliothek Advapi32.lib
DLL Advapi32.dll

Weitere Informationen

Unicode- und Zeichensatzfunktionen

Unicode- und Zeichensätze