Spec-Zone.ru › Dart 2

dart:core

Конструктор Uri.dataFromString

Uri.dataFromString(
  1. String content,
  2. {String? mimeType,
  3. Encoding? encoding,
  4. Map<String, String>? parameters,
  5. bool base64 = false}
)

Создаёт URI data:, содержащий строку content.

Преобразует содержимое в байты, используя encoding или кодировку, указанную в parameters (по умолчанию US-ASCII, если не указано или не распознано), затем кодирует байты в результирующий URI данных.

По умолчанию используется кодировка с процентами (любой символ, не ASCII или не соответствующий URI, заменяется кодировкой с процентами). Если base64 имеет значение true, байты кодируются с использованием base64.

Если encoding не указано, а parameters содержит запись с именем, то это имя используется для поиска с помощью 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.18.5/dart-core/Uri/Uri.dataFromString.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API