По профессии я PHP-разработчик.
Рассмотрим пример ниже:
Я хочу закодировать слово "привет", используя кодировку UTF-8.
So,
Эквивалентные кодовые точки каждой из букв слова "hello" приведены ниже:
h = 104
e = 101
l = 108
o = 111
Итак, мы можем сказать, что список десятичных чисел представляет собой строку "hello":
104 101 108 108 111
Кодировка UTF-8 будет хранить "hello" следующим образом (в двоичном виде):
01101000 01100101 01101100 01101100 01101111
Если вы внимательно посмотрите на приведенное выше двоичное кодированное значение, вы узнаете, что каждому двоичному эквиваленту десятичного числа предшествует двоичное битовое значение 0
.
Мой вопрос: почему этот начальный 0
был добавлен к каждому сохраняемому символу? Какова цель использования его в кодировке UTF-8?
Что было сделано, когда одна и та же строка была закодирована в формате UTF-16?
Если это необходимо, то может ли начальный дополнительный символ быть битовым значением 1
?
Означает ли NUL Byte двоичный символ 0
?
h = U+0068 (hex 0x68 dec 104), e = U+0065 (hex 0x65 dec 101), l = U+006C (hex 0x6C dec 108), o = U+006F (hex 0x6F dec 111)
. Кодовые точки ‹= U+007F кодируются одинаково в UTF-8 и UTF-16, только с UTF-16, расширяющим 7-битные значения до 16 бит. Итак,hello
кодируется следующим образом в UTF-16LE:01101000 00000000 01100101 00000000 01101100 00000000 01101100 00000000 01101111 00000000
и в UTF-16BE:00000000 01101000 00000000 01100101 00000000 01101100 00000000 01101100 00000000 01101111
- person Remy Lebeau   schedule 08.06.2018