Функция utf8.decode
Функция utf8.decode декодирует список байтов,
закодированных в формате UTF-8, и возвращает
полученную строку. Первым параметром функция
принимает список байтов (тип List<int>),
вторым - необязательный именованный параметр
allowMalformed, который указывает, следует ли
заменять некорректные байтовые последовательности
символом замены вместо выброса исключения.
Синтаксис
utf8.decode(bytes, allowMalformed: false)
Пример
Давайте закодируем строку в байты UTF-8, а затем декодируем её обратно:
import 'dart:convert';
void main()
{
List<int> bytes = utf8.encode('abcde');
String res = utf8.decode(bytes);
print(res);
}
Результат выполнения кода:
"abcde"
Пример
Давайте декодируем список байтов, содержащий русские буквы в кодировке UTF-8:
import 'dart:convert';
void main()
{
List<int> bytes = [0xD0, 0xBF, 0xD1, 0x80, 0xD0, 0xB8, 0xD0, 0xB2, 0xD0, 0xB5, 0xD1, 0x82];
String res = utf8.decode(bytes);
print(res);
}
Результат выполнения кода:
"привет"
Пример
Давайте попробуем декодировать некорректную
последовательность байтов с параметром
allowMalformed, установленным в true:
import 'dart:convert';
void main()
{
List<int> bytes = [0xFF, 0xFE, 0x41];
String res = utf8.decode(bytes, allowMalformed: true);
print(res);
}
Результат выполнения кода:
"��A"
Смотрите также
-
функция
utf8.encode,
которая кодирует строку в байты UTF-8 -
класс
Utf8Codec,
который представляет кодек UTF-8 -
класс
Utf8Decoder,
который выполняет декодирование UTF-8 -
функция
jsonDecode,
которая декодирует строку JSON