Uri.dataFromString 构造函数
创建一个包含 content
字符串的 data:
URI。
使用 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 编码,然后将字节进行百分比编码。在数据 URI 中省略 mimeType
表示 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;
}