Метод isCharset
- @Since("2.17")
- String charset
@Since("2.17")
Проверяет, соответствует ли параметр charset типа mime charset.
Если у данного URI нет параметра "charset", предполагается, что он имеет значение по умолчанию charset=US-ASCII. Если значение параметра charset пустое, оно обрабатывается как "US-ASCII".
Возвращает true, если charset и значение параметра "charset" совпадают как строки, игнорируя регистр латинских букв, или оба соответствуют одному и тому же кодированию, как указано в 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.18.5/dart-core/UriData/isCharset.html