Returns a string created from the content of the data URI.
If the content is Base64 encoded, it will be decoded to bytes and then
decoded to a string using encoding
.
If encoding is omitted, the value of a charset
parameter is used
if it is recongized by Encoding.getByName, otherwise it defaults to
the ASCII encoding, which is the default encoding for data URIs
that do not specify an encoding.
If the content is not Base64 encoded, it will first have percent-escapes
converted to bytes and then the character codes and byte values are
decoded using encoding
.
Source
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 new 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);
}