Files
abonnel-www/12ed0b43-7dd6-40f2-a44a-e560e184e344/draft_overlay.md
T

2.4 KiB

L'UTF-8 ne prend pas deux fois plus de place que l'encodage ISO-8859-15

Une idée reçue circule : passer d'ISO-8859-15 à UTF-8 doublerait la taille des fichiers texte. C'est faux. Voyons pourquoi.

ISO-8859-15 : un octet par caractère, mais 256 caractères seulement

L'ISO-8859-15 utilise exactement 1 octet (8 bits) par caractère. Cela lui permet de représenter 256 caractères, ce qui suffit pour couvrir les langues d'Europe occidentale (français, anglais, allemand, espagnol, etc.).

Cette compacité a un prix : l'ISO-8859-15 est incapable de représenter les caractères d'autres alphabets (cyrillique, arabe, chinois, emoji…). Pour toute application multilingue, il est inadapté.

UTF-8 : un codage à longueur variable

L'UTF-8 utilise de 1 à 4 octets par caractère, ce qui lui permet de représenter plus d'un million de caractères Unicode. Sa particularité tient à son codage à longueur variable :

  • 1 octet pour les caractères ASCII (a-z, A-Z, 0-9, ponctuation de base) ;
  • 2 octets pour les caractères latins accentués (é, à, ç, ü…) et la plupart des alphabets européens ;
  • 3 octets pour la majorité des autres scripts (chinois, japonais, arabe…) ;
  • 4 octets pour les caractères rares et les emoji.

L'UTF-8 est par ailleurs rétro-compatible avec l'ASCII : un fichier purement ASCII a exactement la même taille en UTF-8 qu'en ISO-8859-15.

Et concrètement, pour un texte français ?

Pour un texte en français, la grande majorité des caractères sont en ASCII (lettres non accentuées, espaces, ponctuation) et n'occupent qu'un seul octet en UTF-8, comme en ISO-8859-15. Seuls les caractères accentués passent à 2 octets en UTF-8.

Comme les accents représentent une faible proportion du texte, le surcoût réel est généralement de l'ordre de quelques pourcents, et non d'un facteur deux.

En résumé

Non, l'UTF-8 ne prend pas deux fois plus de place que l'ISO-8859-15. Selon le contenu :

  • pour du texte ASCII pur : taille identique ;
  • pour du français courant : surcoût marginal (quelques %) ;
  • pour des langues à scripts non latins : surcoût plus marqué, mais c'est le prix de l'universalité.

Au regard de sa capacité à représenter l'ensemble des écritures du monde, l'UTF-8 reste un excellent compromis entre compacité et flexibilité — et le standard de fait du web moderne.