UTF-8 имеет фиксированный порядок байтов

Я слышал, что мне не нужно размещать спецификацию в начале файла / потока UTF-8.

Есть ли у него фиксированный порядок байтов?

А как насчет UTF-16 и UTF-32 в этом случае?

1 ответ

Решение

UTF-8 не нуждается в порядке байтов, поскольку он определяется в терминах потока байтов. Порядок дается непосредственно по адресу отдельного байта. Различное количество байтов составляет одну кодовую точку.

UTF-32, с другой стороны, определяется в терминах потока из 32-битных блоков (т.е. по 4 байта каждый, каждый из которых отображается непосредственно в кодовую точку Unicode), который может кодироваться различными способами в поток байтов.

Это то, что спецификация указывает для вас, в основном, упорядочены ли байты с их значением (т. Е. Самый младший байт в потоке является наименее значимым, с прямым порядком байтов) или против него (т. Е. Самый ранний байт является наиболее значимым, старшим байтом),

UTF-16 похож, но немного веселее. Он определяется как поток из 16-битных блоков, поэтому вам нужно беспокоиться о порядке следования байтов. Кроме того, поскольку одного 16-битного блока (больше) недостаточно для кодирования всего Unicode, это также кодирование с несколькими "блоками", объединяющее, таким образом, недостатки UTF-8 и UTF-32:)

Другие вопросы по тегам