Funzione IsTextUnicode (winbase.h)

Determina se è probabile che un buffer contenga una forma di testo Unicode.

Sintassi

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

Parametri

[in] lpv

Puntatore al buffer di input da esaminare.

[in] iSize

Dimensioni, in byte, del buffer di input indicato da lpv.

[in, out, optional] lpiResult

In input, puntatore ai test da applicare al testo del buffer di input. In output, questo parametro riceve i risultati dei test specificati: 1 se il contenuto del buffer supera un test, 0 per l'errore. Solo i flag impostati dopo l'input della funzione sono significativi all'output.

Se lpiResult è NULL, la funzione usa tutti i test disponibili per determinare se i dati nel buffer potrebbero essere testo Unicode.

Questo parametro può essere uno o più dei valori seguenti. I valori possono essere combinati con "OR" binario.

Valore Significato
IS_TEXT_UNICODE_ASCII16
Il testo è Unicode e contiene solo valori/caratteri ASCII estesi zero.
IS_TEXT_UNICODE_REVERSE_ASCII16
Uguale a quello precedente, ad eccezione del fatto che il testo Unicode è inverso.
IS_TEXT_UNICODE_STATISTICS
Il testo è probabilmente Unicode, con la determinazione effettuata applicando l'analisi statistica. La certezza assoluta non è garantita. Vedere la sezione relativa alle osservazioni.
IS_TEXT_UNICODE_REVERSE_STATISTICS
Uguale a quello precedente, ad eccezione del fatto che il testo che è probabilmente Unicode è inverso.
IS_TEXT_UNICODE_CONTROLS
Il testo contiene rappresentazioni Unicode di uno o più caratteri non stampati: RETURN, LINEFEED, SPACE, CJK_SPACE, TAB.
IS_TEXT_UNICODE_REVERSE_CONTROLS
Uguale a quello precedente, ad eccezione del fatto che i caratteri Unicode sono inverso.
IS_TEXT_UNICODE_BUFFER_TOO_SMALL
Sono presenti troppo pochi caratteri nel buffer per un'analisi significativa (meno di due byte).
IS_TEXT_UNICODE_SIGNATURE
Il testo contiene il contrassegno di byte Unicode (BOM) 0xFEFF come primo carattere.
IS_TEXT_UNICODE_REVERSE_SIGNATURE
Il testo contiene il byte byte-order mark unicode (BOM inverso) 0xFFFE come primo carattere.
IS_TEXT_UNICODE_ILLEGAL_CHARS
Il testo contiene uno di questi caratteri unicode illegali: bom inverso incorporati, UNICODE_NUL, CRLF (compresso in una parola) o 0xFFFF.
IS_TEXT_UNICODE_ODD_LENGTH
Il numero di caratteri nella stringa è dispari. Una stringa di lunghezza dispari non può (per definizione) essere testo Unicode.
IS_TEXT_UNICODE_NULL_BYTES
Il testo contiene byte null, che indicano testo non ASCII.
IS_TEXT_UNICODE_UNICODE_MASK
Il valore è una combinazione di IS_TEXT_UNICODE_ASCII16, IS_TEXT_UNICODE_STATISTICS, IS_TEXT_UNICODE_CONTROLS, IS_TEXT_UNICODE_SIGNATURE.
IS_TEXT_UNICODE_REVERSE_MASK
Il valore è una combinazione di 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
Il valore è una combinazione di IS_TEXT_UNICODE_ILLEGAL_CHARS, IS_TEXT_UNICODE_ODD_LENGTH e due flag di bit attualmente inutilizzati.
IS_TEXT_UNICODE_NOT_ASCII_MASK
Il valore è una combinazione di IS_TEXT_UNICODE_NULL_BYTES e tre flag di bit attualmente inutilizzati.

Valore restituito

Restituisce un valore diverso da zero se i dati nel buffer superano i test specificati. La funzione restituisce 0 se i dati nel buffer non superano i test specificati.

Commenti

Questa funzione usa vari metodi statistici e deterministici per determinarne la determinazione, sotto il controllo dei flag passati nel parametro lpiResult . Quando la funzione restituisce, i risultati di tali test vengono segnalati usando lo stesso parametro.

I test IS_TEXT_UNICODE_STATISTICS e IS_TEXT_UNICODE_REVERSE_STATISTICS usano l'analisi statistica. Questi test non sono infallibili. I test statistici presuppongono determinate quantità di variazione tra byte bassi e elevati in una stringa e alcune stringhe ASCII possono passare. Ad esempio, se lpv indica la stringa ASCII 0x41, 0x0A, 0x0D, 0x1D (A\n\r^Z), la stringa supera il test IS_TEXT_UNICODE_STATISTICS, anche se l'errore sarebbe preferibile.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione winbase.h (include Windows.h)
Libreria Advapi32.lib
DLL Advapi32.dll

Vedi anche

Funzioni unicode e set di caratteri

Set di caratteri e Unicode