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