UTF-32, quelquefois appelé UCS-4, est un codage des caractères défini par Unicode où chaque caractère est codé sur un mot de 32 bits.
Le codage était défini dans l’annexe 19 à la norme Unicode. Depuis, l’annexe est devenue obsolète, car UTF-32 fait partie intégrante de la norme Unicode, dans son chapitre 3 Conformance où elle est définie de façon très stricte.
Un avantage de la largeur fixe est qu’il est plus facile de calculer la longueur d’une chaîne de caractères contrairement à l’UTF-8 et l’UTF-16, où les deux sont des codages à largeur variable. Un autre avantage est qu’il est plus facile de trouver le nième caractère d’une chaîne, où le nième caractère est la longueur de la chaîne divisée par 4.
L’inconvénient le plus significatif est que les caractères les plus utilisés utilisent 4 octets. Par exemple, le caractère @
est représenté comme 00 00 00 40
en UTF-32.[1] En UTF-16, ce caractère est codé comme ceci : 00 40
. En UTF-8, il est codé comme ceci : 40
. Les 11 bits les plus significatifs sont toujours zéros. Un texte en UTF-32 peut-être jusqu’à 2 fois plus grand qu’un texte en UTF-16 et jusqu’à 4 fois plus grand qu’un texte en UTF-8 (le codage le plus commun).
40 00 00 00