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.