Метод convert
Метод convert класса Utf8Decoder принимает список байтов в кодировке UTF-8 и возвращает декодированную строку. В первый параметр мы передаем байтовые данные (обычно это List<int> или Uint8List), которые необходимо преобразовать обратно в текст. Второй необязательный параметр start задает начальный индекс в списке байтов, с которого начинается декодирование. Третий необязательный параметр end задает конечный индекс (не включая его), на котором декодирование завершается. Если start и end не указаны, декодируется весь список байтов.
Синтаксис
utf8Decoder.convert(bytes, [start], [end])
Пример
Давайте декодируем байты, представляющие строку 'abcde' в кодировке UTF-8:
import 'dart:convert';
void main()
{
List<int> bytes = [97, 98, 99, 100, 101];
Utf8Decoder decoder = Utf8Decoder();
String res = decoder.convert(bytes);
print(res);
}
Результат выполнения кода:
"abcde"
Пример
Давайте декодируем только часть байтов, начиная со второго индекса и заканчивая четвертым (не включая его):
import 'dart:convert';
void main()
{
List<int> bytes = [97, 98, 99, 100, 101];
Utf8Decoder decoder = Utf8Decoder();
String res = decoder.convert(bytes, 1, 4);
print(res);
}
Результат выполнения кода:
"bcd"
Пример
Давайте декодируем байты, содержащие русские буквы в UTF-8:
import 'dart:convert';
void main()
{
List<int> bytes = [208, 159, 209, 128, 208, 184, 208, 178, 208, 181, 209, 130];
Utf8Decoder decoder = Utf8Decoder();
String res = decoder.convert(bytes);
print(res);
}
Результат выполнения кода:
"Привет"
Смотрите также
-
класс
Utf8Decoder,
который декодирует байты UTF-8 в строку -
метод
convertкласса Utf8Encoder,
который кодирует строку в байты UTF-8 -
функция
utf8.decode,
которая декодирует байты UTF-8 в строку -
класс
Utf8Codec,
который объединяет кодирование и декодирование UTF-8