метод isCharset
- @Since("2.17")
- String charset
Проверяет, является ли параметр charset типа MIME значением charset.
Если у этого URI нет параметра "charset", предполагается, что его значение по умолчанию — charset=US-ASCII. Если charset пуст, он рассматривается как "US-ASCII".
Возвращает true, если charset и значение параметра "charset" совпадают как строки без учёта регистра ASCII-букв или соответствуют одной и той же Encoding, согласно Encoding.getByName.
Реализация
@Since("2.17")
bool isCharset(String charset) {
var charsetIndex = _findCharsetIndex();
if (charsetIndex < 0) {
return charset.isEmpty ||
_caseInsensitiveEquals(charset, "US-ASCII") ||
identical(Encoding.getByName(charset), ascii);
}
if (charset.isEmpty) charset = "US-ASCII";
var valueStart = _separatorIndices[charsetIndex + 1] + 1;
var valueEnd = _separatorIndices[charsetIndex + 2];
var length = valueEnd - valueStart;
if (charset.length == length &&
_caseInsensitiveStartsWith(charset, _text, valueStart)) {
return true;
}
var checkedEncoding = Encoding.getByName(charset);
return checkedEncoding != null &&
identical(
checkedEncoding,
Encoding.getByName(
_Uri._uriDecode(_text, valueStart, valueEnd, utf8, false)));
}
© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.19.6/dart-core/UriData/isCharset.html