Função IsTextUnicode (winbase.h)

Determina se é provável que um buffer contenha uma forma de texto Unicode.

Sintaxe

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

Parâmetros

[in] lpv

Ponteiro para o buffer de entrada a ser examinado.

[in] iSize

Tamanho, em bytes, do buffer de entrada indicado pelo lpv.

[in, out, optional] lpiResult

Na entrada, ponteiro para os testes a serem aplicados ao texto do buffer de entrada. Na saída, esse parâmetro recebe os resultados dos testes especificados: 1 se o conteúdo do buffer passar em um teste, 0 para falha. Somente os sinalizadores que são definidos na entrada para a função são significativos na saída.

Se lpiResult for NULL, a função usará todos os testes disponíveis para determinar se os dados no buffer provavelmente serão texto Unicode.

Esse parâmetro pode usar um dos valores a seguir. Os valores podem ser combinados com "OR" binário.

Valor Significado
IS_TEXT_UNICODE_ASCII16
O texto é Unicode e contém apenas valores/caracteres ASCII estendidos por zero.
IS_TEXT_UNICODE_REVERSE_ASCII16
Igual ao anterior, exceto que o texto Unicode é invertido por bytes.
IS_TEXT_UNICODE_STATISTICS
O texto provavelmente é Unicode, com a determinação feita pela aplicação da análise estatística. A certeza absoluta não é garantida. Consulte a seção Comentários.
IS_TEXT_UNICODE_REVERSE_STATISTICS
Igual ao anterior, exceto que o texto que provavelmente é Unicode está invertido por bytes.
IS_TEXT_UNICODE_CONTROLS
O texto contém representações Unicode de um ou mais desses caracteres não imprimíveis: RETURN, LINEFEED, SPACE, CJK_SPACE, TAB.
IS_TEXT_UNICODE_REVERSE_CONTROLS
Igual ao anterior, exceto que os caracteres Unicode são invertidos por bytes.
IS_TEXT_UNICODE_BUFFER_TOO_SMALL
Há poucos caracteres no buffer para análise significativa (menos de dois bytes).
IS_TEXT_UNICODE_SIGNATURE
O texto contém a marca de ordem de bytes Unicode (BOM) 0xFEFF como seu primeiro caractere.
IS_TEXT_UNICODE_REVERSE_SIGNATURE
O texto contém a marca de ordem de byte invertida por bytes Unicode (BOM Inversa) 0xFFFE como seu primeiro caractere.
IS_TEXT_UNICODE_ILLEGAL_CHARS
O texto contém um desses caracteres Unicode-illegal: BOM Reverso incorporado, UNICODE_NUL, CRLF (empacotado em uma palavra) ou 0xFFFF.
IS_TEXT_UNICODE_ODD_LENGTH
O número de caracteres na cadeia de caracteres é estranho. Uma cadeia de caracteres de comprimento ímpar não pode (por definição) ser texto Unicode.
IS_TEXT_UNICODE_NULL_BYTES
O texto contém bytes nulos, que indicam texto não ASCII.
IS_TEXT_UNICODE_UNICODE_MASK
O valor é uma combinação de IS_TEXT_UNICODE_ASCII16, IS_TEXT_UNICODE_STATISTICS, IS_TEXT_UNICODE_CONTROLS IS_TEXT_UNICODE_SIGNATURE.
IS_TEXT_UNICODE_REVERSE_MASK
O valor é uma combinação de 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
O valor é uma combinação de IS_TEXT_UNICODE_ILLEGAL_CHARS, IS_TEXT_UNICODE_ODD_LENGTH e dois sinalizadores de bits não utilizados no momento.
IS_TEXT_UNICODE_NOT_ASCII_MASK
O valor é uma combinação de IS_TEXT_UNICODE_NULL_BYTES e três sinalizadores de bits não utilizados no momento.

Retornar valor

Retorna um valor diferente de zero se os dados no buffer passarem nos testes especificados. A função retornará 0 se os dados no buffer não passarem nos testes especificados.

Comentários

Essa função usa vários métodos estatísticos e determinísticos para fazer sua determinação, sob o controle de sinalizadores passados no parâmetro lpiResult . Quando a função retorna, os resultados desses testes são relatados usando o mesmo parâmetro.

Os testes de IS_TEXT_UNICODE_STATISTICS e IS_TEXT_UNICODE_REVERSE_STATISTICS usam análise estatística. Esses testes não são à prova de falhas. Os testes estatísticos pressupõem determinadas quantidades de variação entre bytes baixos e altos em uma cadeia de caracteres, e algumas cadeias de caracteres ASCII podem passar. Por exemplo, se lpv indicar a cadeia de caracteres ASCII 0x41, 0x0A, 0x0D, 0x1D (A\n\r^Z), a cadeia de caracteres passará no teste de IS_TEXT_UNICODE_STATISTICS, embora a falha seja preferível.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho winbase.h (inclua Windows.h)
Biblioteca Advapi32.lib
DLL Advapi32.dll

Confira também

Funções unicode e conjunto de caracteres

Conjuntos de caracteres e Unicode