Partager via


IsTextUnicode, fonction (winbase.h)

Détermine si une mémoire tampon est susceptible de contenir une forme de texte Unicode.

Syntaxe

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

Paramètres

[in] lpv

Pointeur vers la mémoire tampon d’entrée à examiner.

[in] iSize

Taille, en octets, de la mémoire tampon d’entrée indiquée par lpv.

[in, out, optional] lpiResult

Lors de l’entrée, pointez vers les tests à appliquer au texte de la mémoire tampon d’entrée. Lors de la sortie, ce paramètre reçoit les résultats des tests spécifiés : 1 si le contenu de la mémoire tampon passe un test, 0 en cas d’échec. Seuls les indicateurs définis lors de l’entrée de la fonction sont significatifs lors de la sortie.

Si lpiResult a la valeur NULL, la fonction utilise tous les tests disponibles pour déterminer si les données de la mémoire tampon sont susceptibles d’être du texte Unicode.

Ce paramètre peut prendre une ou plusieurs des valeurs suivantes. Les valeurs peuvent être combinées avec le binaire « OR ».

Valeur Signification
IS_TEXT_UNICODE_ASCII16
Le texte est Unicode et contient uniquement des valeurs/caractères ASCII à extension nulle.
IS_TEXT_UNICODE_REVERSE_ASCII16
Identique à la précédente, sauf que le texte Unicode est inversé par octets.
IS_TEXT_UNICODE_STATISTICS
Le texte est probablement Unicode, avec la détermination effectuée en appliquant l’analyse statistique. La certitude absolue n’est pas garantie. Consultez la section Notes.
IS_TEXT_UNICODE_REVERSE_STATISTICS
Identique au précédent, sauf que le texte qui est probablement Unicode est inversé par octets.
IS_TEXT_UNICODE_CONTROLS
Le texte contient des représentations Unicode d’un ou plusieurs de ces caractères non imprimables : RETURN, LINEFEED, SPACE, CJK_SPACE, TAB.
IS_TEXT_UNICODE_REVERSE_CONTROLS
Identique à ce qui précède, sauf que les caractères Unicode sont inversés par octets.
IS_TEXT_UNICODE_BUFFER_TOO_SMALL
La mémoire tampon contient trop peu de caractères pour une analyse significative (moins de deux octets).
IS_TEXT_UNICODE_SIGNATURE
Le texte contient la marque d’ordre d’octet (BOM) Unicode 0xFEFF comme premier caractère.
IS_TEXT_UNICODE_REVERSE_SIGNATURE
Le texte contient la marque d’ordre d’octet inversée Unicode (nomenclature inverse) 0xFFFE comme premier caractère.
IS_TEXT_UNICODE_ILLEGAL_CHARS
Le texte contient l’un de ces caractères Unicode non conformes : boM inversée incorporée, UNICODE_NUL, CRLF (empaqueté en un mot) ou 0xFFFF.
IS_TEXT_UNICODE_ODD_LENGTH
Le nombre de caractères dans la chaîne est impair. Une chaîne de longueur impaire ne peut pas (par définition) être un texte Unicode.
IS_TEXT_UNICODE_NULL_BYTES
Le texte contient des octets Null, qui indiquent du texte non-ASCII.
IS_TEXT_UNICODE_UNICODE_MASK
La valeur est une combinaison de IS_TEXT_UNICODE_ASCII16, IS_TEXT_UNICODE_STATISTICS, IS_TEXT_UNICODE_CONTROLS IS_TEXT_UNICODE_SIGNATURE.
IS_TEXT_UNICODE_REVERSE_MASK
La valeur est une combinaison 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
La valeur est une combinaison de IS_TEXT_UNICODE_ILLEGAL_CHARS, de IS_TEXT_UNICODE_ODD_LENGTH et de deux indicateurs de bits actuellement inutilisés.
IS_TEXT_UNICODE_NOT_ASCII_MASK
La valeur est une combinaison de IS_TEXT_UNICODE_NULL_BYTES et de trois indicateurs de bits actuellement inutilisés.

Valeur retournée

Retourne une valeur différente de zéro si les données de la mémoire tampon réussissent les tests spécifiés. La fonction retourne 0 si les données de la mémoire tampon ne réussissent pas les tests spécifiés.

Remarques

Cette fonction utilise diverses méthodes statistiques et déterministes pour effectuer sa détermination, sous le contrôle des indicateurs passés dans le paramètre lpiResult . Lorsque la fonction retourne, les résultats de ces tests sont signalés à l’aide du même paramètre.

Les tests IS_TEXT_UNICODE_STATISTICS et IS_TEXT_UNICODE_REVERSE_STATISTICS utilisent une analyse statistique. Ces tests ne sont pas infaillibles. Les tests statistiques supposent que certaines quantités de variation entre des octets faibles et des octets élevés dans une chaîne, et que certaines chaînes ASCII peuvent passer. Par exemple, si lpv indique la chaîne ASCII 0x41, 0x0A, 0x0D, 0x1D (A\n\r^Z), la chaîne réussit le test IS_TEXT_UNICODE_STATISTICS, bien qu’un échec soit préférable.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête winbase.h (inclure Windows.h)
Bibliothèque Advapi32.lib
DLL Advapi32.dll

Voir aussi

Fonctions Unicode et jeu de caractères

Unicode et jeux de caractères