Big-Endian (BE) / Little-Endian (LE) - это два способа организации многобайтовых слов. Например, при использовании двух байтов для представления символа в UTF-16 существует два способа представления символа 0x1234
в виде строки байтов (0x00-0xFF):
Byte Index: 0 1
---------------------
Big-Endian: 12 34
Little-Endian: 34 12
Чтобы определить, использует ли текст UTF-16BE или UTF-16LE, спецификация рекомендует добавлять к строке знак порядка байтов (BOM), представляющий символ U + FEFF. Таким образом, если первые два байта текстового файла в кодировке UTF-16 равны FE
, FF
, кодировка - UTF-16BE. Для FF
, FE
это UTF-16LE.
Визуальный пример: слово «Пример» в разных кодировках (UTF-16 с спецификацией):
Byte Index: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
------------------------------------------------------------
ASCII: 45 78 61 6d 70 6c 65
UTF-16BE: FE FF 00 45 00 78 00 61 00 6d 00 70 00 6c 00 65
UTF-16LE: FF FE 45 00 78 00 61 00 6d 00 70 00 6c 00 65 00
Для получения дополнительной информации, пожалуйста, прочитайте страницу Википедии Порядковый номер и / или UTF-16 .