The charset parameter of the media type.
If the parameters of the media type contains a charset
parameter then this returns its value, otherwise it returns US-ASCII
, which is the default charset for data URIs. If the value contain non-ASCII percent escapes, they are decoded as UTF-8.
If the MIME type representation in the URI text contains URI escapes, they are unescaped in the returned string.
String get charset { int parameterStart = 1; int parameterEnd = _separatorIndices.length - 1; // The ',' before data. if (isBase64) { // There is a ";base64" separator, so subtract one for that as well. parameterEnd -= 1; } for (int i = parameterStart; i < parameterEnd; i += 2) { var keyStart = _separatorIndices[i] + 1; var keyEnd = _separatorIndices[i + 1]; if (keyEnd == keyStart + 7 && _text.startsWith("charset", keyStart)) { return _Uri._uriDecode( _text, keyEnd + 1, _separatorIndices[i + 2], utf8, false); } } return "US-ASCII"; }
© 2012 the Dart project authors
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
https://api.dart.dev/stable/2.5.0/dart-core/UriData/charset.html