Пакет Golang UTF8 EncodeRune
Функция EncodeRune принимает массив байтов и руну и кодирует их в кодировку UTF8.
Пример:
Пришло время поработать с кодом!
Результат:
Объяснение:
Символ хинди ' क ' (DEVANAGARI LETTER KA) в кодировке UTF8 занимает 3 байта. Вывод возвращает количество занимаемых байт символами. Давай углубимся в двоичный код и узнаем, как символ кодируется в UTF8.
Двоичный код 224:
Двоичный код 164:
Двоичный код 149:
В соответствии с правилом кодирования UTF8, первому байту (кроме любых символов ASCII) предшествует количество единиц, равное размеру этого символа и следующего 0, а остальным байтам предшествует 10, это фиксированное правило для кодировки UTF8.