Centre d‘Information

UTF-32

Dans le codage Unicode UTF-32, chaque caractère est codé avec quatre octets (32 bits). Le résultat est une exigence de mémoire plus importante par rapport à tous les autres encodages, car tous les autres encodages utilisent des longueurs d’octets variables pour un caractère. Cependant, cela présente également l’avantage que les fichiers ou flux codés en UTF-32 sont plus faciles à manipuler et à traiter, car chaque octet a exactement sa place et qu’il ne peut y avoir de longueur variable.

Avantages et Inconvénients de l'UTF-32

Un avantage de ce codage est qu’il est très facile d’accéder à un caractère spécifique en mémoire et que la longueur d’un texte peut être rapidement déterminée en conséquence en divisant simplement le nombre d’octets par quatre.

Un inconvénient décisif est le besoin accru de mémoire. Par rapport aux textes composés de lettres latines, stockés en UTF-7, UTF-8 ou ANSI, les besoins en mémoire du codage UTF-32 sont quatre fois supérieurs. Même si vous utilisez d’autres caractères tels que des lettres cyrilliques ou grecques, UTF-32 a besoin de beaucoup plus de mémoire, car dans tous les autres encodages, seuls les caractères moins utilisés et inhabituels sont codés sur quatre octets.

Marque d’Ordre d’Octet

UTF-32 peut être stocké en tant que Big Endian et Little Endian. Cela signifie que l'ordre des octets (= endianness) est soit de droite à gauche (big endian) ou soit de gauche à droite (little endian). La marque d’ordre d’octet (byte order mark, BOM) pour un stockage en tant que Big Endian est donc 00 00 FE FF, pour Little Endian FF FE 00 00, en conséquence.

Si vous ouvrez un fichier au format UTF-32 dans un éditeur de texte ou un autre programme qui ne peut pas interpréter le format UTF-32, les lettres latines apparaissent généralement avec une distance de 3 espaces ou points d'interrogation entre les lettres individuelles. Cela est dû au fait que dans le format UTF-32, chaque caractère est enregistré avec 4 octets et les caractères tels que A-Z ou a-z sont codés comme 3 octets nuls plus un octet qui correspond exactement à l'octet respectif pour le caractère du caractère ASCII ensemble. Si le programme interprète la séquence d'octets du fichier comme ASCII ou Latin-1, les caractères ASCII ou Latin-1 sont conservés et les zéro octets sont affichés sous forme d'espaces ou de points d'interrogation.

La marque d'ordre des octets dans ce contexte est généralement affichée pour UTF32-BE sous la forme "??þÿ" ou "ÿþ??" pour les fichiers encodés au format UTF32-LE. L'octet zéro n'a pas d'équivalent de caractère spécifique, donc la représentation dépend du programme utilisé. En plus des espaces ou des points d'interrogation, la lecture du fichier peut également être complètement interrompue à la position du premier octet zéro.