Функция IsTextUnicode (winbase.h)

Определяет, может ли буфер содержать форму текста Юникода.

Синтаксис

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 на сбой. При выводе имеют значение только флаги, заданные при входе в функцию.

Если lpiResult имеет значение NULL, функция использует все доступные тесты, чтобы определить, являются ли данные в буфере текстом Юникода.

Этот параметр может быть одним или несколькими из следующих значений. Значения можно комбинировать с двоичным значением OR.

Значение Значение
IS_TEXT_UNICODE_ASCII16
Текст имеет значение Юникод и содержит только нулевые расширенные значения и символы ASCII.
IS_TEXT_UNICODE_REVERSE_ASCII16
Аналогично предыдущему, за исключением того, что текст Юникода является байт-обратным.
IS_TEXT_UNICODE_STATISTICS
Текст, вероятно, в Юникоде, с определением, сделанным путем применения статистического анализа. Абсолютная уверенность не гарантируется. См. раздел «Примечания».
IS_TEXT_UNICODE_REVERSE_STATISTICS
То же, что и предыдущий, за исключением того, что текст, вероятно, в Юникоде, имеет байтовую обратную сторону.
IS_TEXT_UNICODE_CONTROLS
Текст содержит представления в Юникоде одного или нескольких непечатаемых символов: RETURN, LINEFEED, ПРОБЕЛ, CJK_SPACE, TAB.
IS_TEXT_UNICODE_REVERSE_CONTROLS
Аналогично предыдущему, за исключением того, что символы Юникода имеют обратный байт.
IS_TEXT_UNICODE_BUFFER_TOO_SMALL
В буфере слишком мало символов для осмысленного анализа (менее двух байтов).
IS_TEXT_UNICODE_SIGNATURE
Текст содержит метку порядка байтов Юникода (BOM), 0xFEFF в качестве первого символа.
IS_TEXT_UNICODE_REVERSE_SIGNATURE
Текст содержит метку порядка байтов в Юникоде с обратным изменением байтов (обратный байтовой символ), 0xFFFE в качестве первого символа.
IS_TEXT_UNICODE_ILLEGAL_CHARS
Текст содержит один из следующих символов Юникода: встроенный обратный BOM, UNICODE_NUL, CRLF (упакованный в одно слово) или 0xFFFF.
IS_TEXT_UNICODE_ODD_LENGTH
Число символов в строке нечетное. Строка нечетной длины не может (по определению) быть текстом в Юникоде.
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 и двух неиспользуемых битовых флагов.
IS_TEXT_UNICODE_NOT_ASCII_MASK
Значение представляет собой сочетание IS_TEXT_UNICODE_NULL_BYTES и трех неиспользуемых битовых флагов.

Возвращаемое значение

Возвращает ненулевое значение, если данные в буфере проходят указанные тесты. Функция возвращает значение 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
Header winbase.h (включая Windows.h)
Библиотека Advapi32.lib
DLL Advapi32.dll

См. также раздел

Функции Юникода и кодировки

Юникод и наборы символов