Конструктор Uri.dataFromString
Создает URI data:, содержащий строку content.
Преобразует содержимое в байты с помощью encoding или набора символов, указанного в parameters (по умолчанию используется US-ASCII, если набор символов не указан или не распознан), а затем кодирует байты в результирующий URI данных.
По умолчанию используется кодирование с помощью процентного кодирования (все байты, не относящиеся к ASCII или недопустимые в URI, заменяются процентным кодированием). Если base64 имеет значение true, байты вместо этого кодируются с помощью base64.
Если encoding не указан, а в parameters есть запись charset, это имя передается в Encoding.getByName, и если поиск возвращает кодировку, она используется для преобразования content в байты. Если указаны и encoding, и набор символов в parameters, они должны совпадать, иначе при декодировании невозможно будет определить кодировку по параметру набора символов.
Если указаны mimeType и/или parameters, они добавляются в созданный URI. Если они содержат символы, недопустимые в URI данных, эти символы экранируются с помощью процентного кодирования. Символы, не относящиеся к ASCII, сначала кодируются в UTF-8, а затем байты кодируются с помощью процентного кодирования. Отсутствие mimeType в URI данных означает text/plain, так же как отсутствие параметра charset по умолчанию означает US-ASCII.
Чтобы прочитать содержимое, используйте UriData.contentAsString.
Пример:
final uri = Uri.dataFromString(
'example content',
mimeType: 'text/plain',
parameters: <String, String>{'search': 'file', 'max': '10'},
);
print(uri); // data:;search=name;max=10,example%20content Реализация
factory Uri.dataFromString(String content,
{String? mimeType,
Encoding? encoding,
Map<String, String>? parameters,
bool base64 = false}) {
UriData data = UriData.fromString(content,
mimeType: mimeType,
encoding: encoding,
parameters: parameters,
base64: base64);
return data.uri;
}
© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.19.6/dart-core/Uri/Uri.dataFromString.html