contentAsString 方法
- {Encoding? encoding}
从数据 URI 的内容创建一个字符串。
如果内容是 Base64 编码的,它将被解码成字节,然后使用 encoding
进行字符串解码。如果省略了编码,将使用如果它被 Encoding.getByName 认识到的 charset
参数的值;如果没有识别到,它默认为 ascii 编码,这是没有指定编码的数据 URI 的默认编码。
如果内容不是 Base64 编码的,它首先将百分号转义转换为字节,然后使用 encoding
对字符码和字节的值进行解码。
实现
String contentAsString({Encoding? encoding}) {
if (encoding == null) {
var charset = this.charset; // Returns "US-ASCII" if not present.
encoding = Encoding.getByName(charset);
if (encoding == null) {
throw UnsupportedError("Unknown charset: $charset");
}
}
String text = _text;
int start = _separatorIndices.last + 1;
if (isBase64) {
var converter = base64.decoder.fuse(encoding.decoder);
return converter.convert(text.substring(start));
}
return _Uri._uriDecode(text, start, text.length, encoding, false);
}