contentAsString 方法

String contentAsString({
  1. 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);
}