Combien d'octets pèse un émoji ?

Un émoji comme 😀 pèse 4 octets en UTF-8 et en UTF-16 : un seul caractère, mais plusieurs octets.

Caractères (points de code)
7
UTF-8
10 octets
UTF-16
16 octets
UTF-32
28 octets
ISO-8859-1 (Latin-1)
impossible : 1 caractère hors table
ASCII
impossible : 1 caractère hors table

Le cas en détail

Les émojis se situent en dehors du plan de base d'Unicode. Ils prennent 4 octets en UTF-8, 4 en UTF-16 (une paire de moitiés) et 4 en UTF-32. Ils sont impossibles à coder en ASCII ou en Latin-1.

À retenir : Dans certains langages, la « longueur » d'un texte compte des unités de 16 bits : un émoji peut y compter pour 2.

L'exemple chiffré

Valeurs utilisées dans ce cas (des exemples, pas des mesures) :

  • Texte à mesurer : « Super 😀 »
Caractères (points de code)
7
UTF-8
10 octets
UTF-16
16 octets
UTF-32
28 octets
ISO-8859-1 (Latin-1)
impossible : 1 caractère hors table
ASCII
impossible : 1 caractère hors table

Modifiez les champs ci-dessus pour adapter le calcul à votre situation : le résultat se met à jour tout de suite.

Comment ça se calcule

Le texte est découpé en points de code Unicode. En UTF-8, un point de code occupe 1 à 4 octets selon sa valeur (1 jusqu'à U+007F, 2 jusqu'à U+07FF, 3 jusqu'à U+FFFF, 4 au-delà). En UTF-16, 2 octets ou 4 pour les caractères hors plan de base ; en UTF-32, toujours 4. Latin-1 et ASCII n'acceptent que les 256 et 128 premiers points de code.

Les résultats sont fournis à titre indicatif, sans valeur de conseil juridique, fiscal ou financier.

Pour aller plus loin