Les caractères peuvent être encodés de différentes manières. Tandis que de nos jours, les gens utilisent principalement UTF-8, autrefois le codage de type UTF-16 était prisé et reste encore souvent utilisé de nos jours. Parfois UTF-32 est également utilisé, mais contrairement à UTF-8, les encodages avec un plus grand nombre de bits par caractère doivent identifier l'ordre des octets.
Dans un codage UTF-8, chaque caractère peut être représenté par un octet (c'est-à-dire 8 bits). UTF-16, d'autre part, nécessite deux octets (16 bits) pour encoder un caractère. Pour que le caractère soit interprété correctement, l’ordre de lecture des octets (de gauche à droite ou de droite à gauche) doit être clairement défini. Dans le cas contraire, vous risquez d’obtenir une tout autre valeur.
- De gauche à droite : 0110101010 0011010101 représente en notation hexadécimale 6a35
- De droite à gauche : 01101010 0011010101 représente en notation hexadécimale 356a
Si l'on devait voir cette séquence de chiffres dans le contexte d'une table des caractères Unicode, deux caractères complètement différents seraient affichés. Dans la première lecture, on parle de Big Endian (BE), dans la seconde de Little Endian (LE). Pour Big Endian, il faut d’abord indiquer la valeur la plus élevée, et pour Little Endian la valeur la plus basse.