Hay muchas maneras de codificar caracteres. Mientras que hoy en día la más utilizada es UTF-8, antes la codificación más popular era UTF-16, que también sigue usándose a menudo. Otro formato que también se utiliza a veces es el UTF-32. Al contrario que con UTF-8, las codificaciones con un mayor número de bits por carácter requieren que se determine el orden de los bytes.
La codificación UTF-8 permite representar cada carácter con un solo byte (o sea, 8 bits). UTF-16, en cambio, necesita dos bytes para ello (16 bits), de manera que, para que estos puedan interpretarse correctamente, debe indicarse si se leerán de derecha a izquierda o al revés. Según sea el caso, los datos pueden resultar en valores completamente distintos.
- De izquierda a derecha, 01101010 00110101 equivale, en notación hexadecimal, a 6a35.
- De derecha a izquierda, 01101010 00110101 equivale, en notación hexadecimal, a 356a
Si observásemos esta serie de cifras en una tabla Unicode, veríamos que se trata de caracteres totalmente diferentes. El primer tipo de lectura es denominado Big Endian (BE) y el segundo, Little Endian (LE). La razón es que en Big Endian se da primero el valor más alto y, en Little Endian, el más bajo.