Centre d‘Information

UTF-8

Le format UTF-8 est le format de codage le plus courant pour les caractères Unicode. Un caractère codé UTF-8 nécessite variable de 1 à 4 octets. UTF-8 est optimisé pour le stockage de caractères ASCII. Dans la plage ASCII avec des valeurs de 0 à 127 dans le codage UTF-8, un seul octet par caractère est utilisé. La valeur de cet octet est identique à celle du codage ASCII. Par conséquent, le codage UTF-8 est particulièrement adapté aux textes composés principalement de caractères ASCII ou ANSI et ne contenant que quelques autres caractères, comme c’est le cas par exemple en anglais ou dans la plupart des langues européennes.

Alors que les 128 premiers caractères (ASCII) nécessitent un octet pour le codage, les 1920 prochains caractères nécessitent deux octets. Ces caractères sont des caractères latins avec des signes diacritiques tels que les umlauts allemands (Ä, Ö ..) ou les lettres grecques et cyrilliques. Quatre octets ne sont utilisés que pour les caractères rarement utilisés, tels que les caractères inhabituels chinois, japonais et coréens.

Le codage UTF-8 devient de plus en plus important sur Internet, car l’Internet Engineering Task Force exige que tous les nouveaux protocoles Internet prennent en charge UTF-8 et que UTF-8 est de plus en plus utilisé pour afficher des caractères spéciaux sur des pages Web au lieu de nommer entités (named characters) ou autres pense.

Un inconvénient de UTF-8 est la taille plus grande lorsque de nombreux caractères non préférés sont utilisés, c’est-à-dire des caractères qui nécessitent 3 ou 4 octets. Dans de tels cas, d’autres encodages seraient plus efficaces en termes d’espace.

Byte Order Mark

La Byte Order Mark (BOM) de UTF-8 est la séquence d’octets EF BB BF, qui peut apparaître sous la forme des caractères  si le programme ne peut pas traiter l’UTF-8. Le problème de l’ordre des octets ne se pose pas dans le codage UTF-8, mais il est préférable d’utiliser une nomenclature pour caractériser le codage utilisé. Cependant, une différenciation n’est pas claire à 100%, car bien entendu, dans le format ANSI, des chaînes telles que  sont autorisées et peuvent se produire en théorie au moins au début du fichier.