isEncoding 方法

  1. @Since("2.17")
bool isEncoding(
  1. Encoding encoding
)

是否字符集参数代表 encoding

如果 URI 中不存在 "charset" 参数,它默认为 "US-ASCII",即 ascii 编码。如果存在,则使用 Encoding.getByName 将其转换为 Encoding,并与 encoding 进行比较。

实现

@Since("2.17")
bool isEncoding(Encoding encoding) {
  var charsetIndex = _findCharsetIndex();
  if (charsetIndex < 0) {
    return identical(encoding, ascii);
  }
  var valueStart = _separatorIndices[charsetIndex + 1] + 1;
  var valueEnd = _separatorIndices[charsetIndex + 2];
  return identical(
      encoding,
      Encoding.getByName(
          _Uri._uriDecode(_text, valueStart, valueEnd, utf8, false)));
}