Compartir a través de


Función IsTextUnicode (winbase.h)

Determina si es probable que un búfer contenga una forma de texto Unicode.

Sintaxis

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

Parámetros

[in] lpv

Puntero al búfer de entrada que se va a examinar.

[in] iSize

Tamaño, en bytes, del búfer de entrada indicado por lpv.

[in, out, optional] lpiResult

En la entrada, puntero a las pruebas que se van a aplicar al texto del búfer de entrada. En la salida, este parámetro recibe los resultados de las pruebas especificadas: 1 si el contenido del búfer supera una prueba, 0 si se produce un error. Solo las marcas que se establecen en la entrada de la función son significativas en la salida.

Si lpiResult es NULL, la función usa todas las pruebas disponibles para determinar si es probable que los datos del búfer sean texto Unicode.

Este parámetro puede ser uno o más de los siguientes valores. Los valores se pueden combinar con el binario "OR".

Valor Significado
IS_TEXT_UNICODE_ASCII16
El texto es Unicode y solo contiene valores o caracteres ASCII extendidos con cero.
IS_TEXT_UNICODE_REVERSE_ASCII16
Igual que el anterior, excepto que el texto Unicode se invierte por bytes.
IS_TEXT_UNICODE_STATISTICS
Probablemente, el texto es Unicode, con la determinación realizada aplicando el análisis estadístico. No se garantiza la certeza absoluta. Consulte la sección Comentarios.
IS_TEXT_UNICODE_REVERSE_STATISTICS
Igual que el anterior, salvo que el texto que probablemente sea Unicode es un byte invertido.
IS_TEXT_UNICODE_CONTROLS
El texto contiene representaciones Unicode de uno o varios de estos caracteres no imprimibles: RETURN, LINEFEED, SPACE, CJK_SPACE, TAB.
IS_TEXT_UNICODE_REVERSE_CONTROLS
Igual que el anterior, salvo que los caracteres Unicode se invierten por bytes.
IS_TEXT_UNICODE_BUFFER_TOO_SMALL
Hay demasiados caracteres en el búfer para un análisis significativo (menos de dos bytes).
IS_TEXT_UNICODE_SIGNATURE
El texto contiene la marca de orden de bytes (BOM) Unicode 0xFEFF como primer carácter.
IS_TEXT_UNICODE_REVERSE_SIGNATURE
El texto contiene la marca de orden de bytes invertida por bytes Unicode (BOM inverso) 0xFFFE como su primer carácter.
IS_TEXT_UNICODE_ILLEGAL_CHARS
El texto contiene uno de estos caracteres unicode no válidos: BOM inverso incrustado, UNICODE_NUL, CRLF (empaquetado en una palabra) o 0xFFFF.
IS_TEXT_UNICODE_ODD_LENGTH
El número de caracteres de la cadena es impar. Una cadena de longitud impar no puede (por definición) ser texto Unicode.
IS_TEXT_UNICODE_NULL_BYTES
El texto contiene bytes NULL, que indican texto que no es ASCII.
IS_TEXT_UNICODE_UNICODE_MASK
El valor es una combinación de IS_TEXT_UNICODE_ASCII16, IS_TEXT_UNICODE_STATISTICS, IS_TEXT_UNICODE_CONTROLS, IS_TEXT_UNICODE_SIGNATURE.
IS_TEXT_UNICODE_REVERSE_MASK
El valor es una combinación 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
El valor es una combinación de IS_TEXT_UNICODE_ILLEGAL_CHARS, IS_TEXT_UNICODE_ODD_LENGTH y dos marcas de bits actualmente sin usar.
IS_TEXT_UNICODE_NOT_ASCII_MASK
El valor es una combinación de IS_TEXT_UNICODE_NULL_BYTES y tres marcas de bits que no se usan actualmente.

Valor devuelto

Devuelve un valor distinto de cero si los datos del búfer pasan las pruebas especificadas. La función devuelve 0 si los datos del búfer no superan las pruebas especificadas.

Comentarios

Esta función usa varios métodos estadísticos y deterministas para tomar su determinación, bajo el control de las marcas pasadas en el parámetro lpiResult . Cuando la función devuelve, los resultados de estas pruebas se notifican con el mismo parámetro.

Las pruebas de IS_TEXT_UNICODE_STATISTICS y IS_TEXT_UNICODE_REVERSE_STATISTICS usan análisis estadísticos. Estas pruebas no son infalibles. Las pruebas estadísticas asumen ciertas cantidades de variación entre bytes bajos y altos en una cadena, y algunas cadenas ASCII pueden deslizarse. Por ejemplo, si lpv indica la cadena ASCII 0x41, 0x0A, 0x0D, 0x1D (A\n\r^Z), la cadena pasa la prueba de IS_TEXT_UNICODE_STATISTICS, aunque el error sería preferible.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winbase.h (incluya Windows.h)
Library Advapi32.lib
Archivo DLL Advapi32.dll

Consulte también

Funciones Unicode y Juego de caracteres

Conjuntos de caracteres y Unicode