статический метод encodeQueryComponent
Кодирует строку component согласно правилам HTML 4.01 для кодирования отправки HTML-формы в виде компонента строки запроса.
Кодирует строку component согласно правилам HTML 4.01 для кодирования отправки HTML-формы в виде компонента строки запроса.
Сначала компонент кодируется в байты с использованием encoding. По умолчанию используется кодировка utf8, которая сохраняет все символы, не требующие кодирования.
Затем полученные байты кодируются в формате percent-encoding. Пробелы (U+0020) преобразуются в знак плюса ('+'), а все байты, которые не соответствуют десятичным цифрам ASCII, буквам или одному из символов '-._~', записываются в виде знака процента '%' и следующего за ним двухзначного шестнадцатеричного представления байта.
Обратите внимание, что набор символов, кодируемых с помощью percent-encoding, шире, чем требуется HTML 4.01, поскольку в нём приводится ссылка на RFC 1738 для зарезервированных символов.
При ручном кодировании компонентов запроса не забывайте кодировать каждую часть отдельно перед формированием строки запроса.
Чтобы не кодировать запрос явно, используйте необязательный именованный аргумент queryParameters при создании объекта Uri.
Подробнее см. https://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.2.
Реализация
static String encodeQueryComponent(String component,
{Encoding encoding = utf8}) {
return _Uri._uriEncode(_Uri._unreservedTable, component, encoding, true);
}
© 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/Uri/encodeQueryComponent.html