РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
210 of 1593 menu

Функция utf8.EncodeRune

Функция utf8.EncodeRune из пакета unicode/utf8 записывает UTF-8 представление переданной руны в слайс байт. Первый параметр функции — это слайс байт, в который будет записан результат. Второй параметр — это руна, которую нужно закодировать. Функция возвращает количество байт, которые были записаны в слайс.

Важно: слайс должен иметь достаточную емкость для записи UTF-8 представления руны (максимум 4 байта).

Синтаксис

utf8.EncodeRune([]byte, rune)

Пример

Давайте закодируем простую латинскую руну 'A':

package main import ( "fmt" "unicode/utf8" ) func main() { buf := make([]byte, 4) n := utf8.EncodeRune(buf, 'A') fmt.Printf("bytes: %v, count: %d\n", buf[:n], n) }

Результат выполнения кода:

"bytes: [65], count: 1"

Пример

Теперь закодируем кириллическую руну 'Я':

package main import ( "fmt" "unicode/utf8" ) func main() { buf := make([]byte, 4) n := utf8.EncodeRune(buf, 'Я') fmt.Printf("bytes: %v, count: %d\n", buf[:n], n) }

Результат выполнения кода:

"bytes: [208 175], count: 2"

Пример

Закодируем руну, которая занимает 4 байта:

package main import ( "fmt" "unicode/utf8" ) func main() { buf := make([]byte, 4) n := utf8.EncodeRune(buf, '😀') fmt.Printf("bytes: %v, count: %d\n", buf[:n], n) }

Результат выполнения кода:

"bytes: [240 159 152 128], count: 4"

Смотрите также

  • функцию utf8.DecodeRune,
    которая декодирует первую руну из слайса байт
  • функцию utf8.DecodeRuneInString,
    которая декодирует первую руну из строки
  • функцию utf8.RuneLen,
    которая возвращает количество байт, необходимое для кодирования руны
  • функцию utf8.RuneCount,
    которая подсчитывает количество рун в слайсе байт
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить