Класс Utf8Encoder
Класс Utf8Encoder используется для преобразования
строк в список байтов (целых чисел от 0 до 255)
с использованием кодировки UTF-8. В первый параметр
метода convert мы передаем строку, которую
необходимо закодировать. Второй параметр является
необязательным и задает начальный индекс, с которого
начинается кодирование. Третий параметр также
необязательный и указывает конечный индекс (не включая его).
Если индексы не указаны, кодируется вся строка целиком.
Синтаксис
Utf8Encoder().convert(string, [start, end])
Пример
Давайте закодируем строку 'abcde' в последовательность
байтов UTF-8 и выведем результат:
import 'dart:convert';
void main()
{
String str = 'abcde';
List<int> res = Utf8Encoder().convert(str);
print(res);
}
Результат выполнения кода:
[97, 98, 99, 100, 101]
Пример
Давайте закодируем только часть строки, начиная
с индекса 1 и заканчивая индексом 4
(конечный индекс не входит в результат):
import 'dart:convert';
void main()
{
String str = 'abcde';
List<int> res = Utf8Encoder().convert(str, 1, 4);
print(res);
}
Результат выполнения кода:
[98, 99, 100]
Пример
Давайте закодируем строку, содержащую кириллицу, чтобы увидеть, как UTF-8 представляет многобайтовые символы:
import 'dart:convert';
void main()
{
String str = 'абв';
List<int> res = Utf8Encoder().convert(str);
print(res);
}
Результат выполнения кода:
[208, 176, 208, 177, 208, 178]
Смотрите также
-
класс
Utf8Codec,
который объединяет кодирование и декодирование UTF-8 -
класс
Utf8Decoder,
который декодирует байты обратно в строку -
метод
utf8.encode,
который кодирует строку в UTF-8 -
метод
utf8.decode,
который декодирует байты из UTF-8