Кодек utf8
Кодек utf8 представляет собой экземпляр класса Utf8Codec
и используется для преобразования строк в последовательность байтов
в кодировке UTF-8 и обратно. В первый параметр метода encode
мы передаем строку, которую нужно закодировать, во второй -
необязательный параметр, отвечающий за обработку некорректных символов.
В первый параметр метода decode мы передаем список байтов,
который нужно декодировать, во второй - необязательный параметр
для управления обработкой ошибок.
Синтаксис
utf8.encode(str)
utf8.decode(bytes)
Пример
Давайте закодируем строку 'abcde' в байты UTF-8:
import 'dart:convert';
void main()
{
List<int> res = utf8.encode('abcde');
print(res);
}
Результат выполнения кода:
[97, 98, 99, 100, 101]
Пример
Давайте декодируем список байтов обратно в строку:
import 'dart:convert';
void main()
{
String res = utf8.decode([97, 98, 99, 100, 101]);
print(res);
}
Результат выполнения кода:
"abcde"
Пример
Давайте закодируем строку с русскими символами, каждый из которых в UTF-8 занимает более одного байта:
import 'dart:convert';
void main()
{
List<int> res = utf8.encode('абв');
print(res);
}
Результат выполнения кода:
[208, 176, 208, 177, 208, 178]
Пример
Давайте применим кодек utf8 для сериализации JSON-объекта
в компактную строку байтов:
import 'dart:convert';
void main()
{
Map<String, dynamic> data = {'a': 1, 'b': 2};
String json = jsonEncode(data);
List<int> res = utf8.encode(json);
print(res);
}
Результат выполнения кода:
[123, 34, 97, 34, 58, 49, 44, 34, 98, 34, 58, 50, 125]
Смотрите также
-
класс
Utf8Codec,
который реализует кодек UTF-8 -
метод
utf8.encode,
который кодирует строку в байты UTF-8 -
метод
utf8.decode,
который декодирует байты в строку -
метод
encode,
который преобразует объект в JSON-строку