I caratteri possono essere codificati in modi diversi. Mentre attualmente si utilizza soprattutto la codifica UTF-8, in passato era diffusa quella UTF-16, che viene utilizzata spesso ancor oggi. Parzialmente si usa anche UTF-32. A differenza di UTF-8, tuttavia, per le codifiche con un numero maggiore di bit per carattere, è necessario conoscere l’ordine dei byte.
In una codifica UTF-8 ogni carattere può essere rappresentato con un byte (ovvero 8 bit). Con UTF-16 sono necessari invece due byte (ovvero 16 bit) per codificare un carattere. Affinché il carattere possa essere interpretato correttamente, occorre chiarire se i byte vengono letti da sinistra a destra o da destra a sinistra. In base a questo si ottiene un valore completamente diverso.
- Da sinistra a destra: 01101010 00110101 è in notazione esadecimale 6a35
- Da destra a sinistra: 01101010 00110101 è in notazione esadecimale 356a
Se ora si vedesse questa sequenza numerica nel contesto di una tabella Unicode verrebbero visualizzati due caratteri completamente diversi. Nella prima lettura si parla di big endian (BE), nella seconda di little endian (LE); il big endian indica per primo il valore più alto, mentre il little endian quello più basso.