Les bloqueurs de pubs mettent en péril la gratuité de ce site.
Autorisez les pubs sur Techno-Science.net pour nous soutenir.
▶ Poursuivre quand même la lecture ◀
Avantages
- Universalité:
- Ce codage permet de représenter les milliers de caractères du répertoire universel, commun à la norme ISO/CEI 10646 et au standard Unicode (du moins depuis sa version 1.1).
- Compatibilité avec US-ASCII:
- Un texte en US-ASCII est codé identiquement en UTF-8.
- Interopérabilité:
- Du fait qu’un caractère est découpé en une suite d’octets (et non en mots de plusieurs octets), il n'y a pas de problème d’endianness (ou « boutisme »).
- Ce problème apparaît avec les codages UTF-16 et UTF-32 par exemple, si on ne les utilise pas avec un marqueur d’ordonnancement (appelé BOM pour Byte Order Mark) codé en début de fichier à l’aide du caractère U+FEFF, qui était auparavant destiné à un autre usage (ZWNBSP pour zero-width non-breaking space, une fonction d’agglutination de mots à afficher sans espace séparatrice ni césure que remplit aujourd’hui le caractère ZWWJ pour zero-width word-joiner). En revanche, les codages dérivés UTF-16BE, UTF-16LE, UTF-32BE et UTF-32LE sont conçus avec un ordonnancement précis ne nécessitant l’emploi d’aucun BOM.
- Pour différentes raisons de compatibilité (notamment via des processus de transcodage), il est cependant resté admis qu’un BOM (U+FEFF), non absolument nécessaire, puisse encore être codé en tête d’un fichier UTF-8 (leur interprétation reste celle du caractère ZWNBSP, même si de nombreux protocoles ont choisi d’ignorer et filtrer silencieusement ce caractère puisqu’il ne sert plus qu’à cet usage et que son ancienne fonction, quand elle reste nécessaire à l’interprétation du texte lui-même, est désormais transférée sur un autre caractère codé exprès).
- Efficacité:
- Pour la plupart des langues à écriture latine, les fichiers de données numériques ou les codes sources de programmes, ou de nombreux protocoles textuels de communication (comme FTP, HTTP ou MIME), qui utilisent abondamment (voire parfois exclusivement dans certaines parties) les caractères US-ASCII, UTF-8 nécessite moins d’octets que l’UTF-16 ou l’UTF-32.
- Réutilisabilité:
- De nombreuses techniques de programmation informatique valables avec les caractères uniformément codés sur un octet le restent avec UTF-8, notamment :
- la manière de repérer la fin d’une chaîne de caractères C, car tout octet binaire 00000000 trouvé dans une chaîne de caractères codés en UTF-8 est toujours le caractère nul (en revanche il est alors impossible de représenter le caractère NUL lui-même comme membre de la chaîne de caractères, à moins que l’information de longueur effective du texte codé soit stockée ou transportée ailleurs de celui-ci, auquel cas cet octet sera interprété comme tel au sein même des chaînes codées en UTF-8).
- la manière de trouver une sous-chaîne est identique.
- Fiabilité:
- Il s’agit d’un codage auto-synchronisant (en lisant un seul octet on sait si c’est le premier d’un caractère ou non).
- Il est possible, depuis n’importe quelle position dans un texte codé, de remonter au premier octet de la séquence en lisant une toute petite quantité d’octets antérieurs, soit au maximum 3 octets, ou de trouver facilement le début de la séquence suivante, là encore en ne sautant qu’au maximum 3 octets) ;
- Une séquence décrivant un caractère n’apparaît jamais dans une séquence plus longue décrivant un autre caractère (comme c’est le cas de Shift-JIS).
- Il n’existe pas de code « d'échappement » changeant l’interprétation (comme caractères) de la suite d’une séquence d’octets.