contentAsString method

String contentAsString ({Encoding encoding })

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 recognized 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.


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);