Требуется ли двоеточие кодировать в параметрах запроса URI?
мы заметили, что JavaUriBuilder
ISN»т кодирование:
символы, включенные в значения параметров моего запроса (строки в формате ISO 8601).
Согласно Википедии, кажется, что двоеточие должно быть закодировано.
В частности, для кодирования строки запроса используются следующие правила:
Буквы (A-Z и a-z), цифры (0-9) и символы '.', '-', '~' а также '_' остаются как естьПРОБЕЛ кодируется как «+» или% 20 [необходима цитата]Все остальные символы закодированы как шестнадцатеричное представление% FF с любыми не-ASCII символами, сначала закодированными как UTF-8 (или с другой указанной кодировкой)И что'сделка? Должны ли кодироваться двоеточия в параметрах запроса или нет?
Обновить:
Я посмотрел спецификации синтаксиса URI (RFC 3986) и похоже, что кодирование двоеточий в параметрах запроса действительно нет необходимо. Вот'Выдержка из ABNF для URI:
URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ]
query = *( pchar / "/" / "?" )
pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
pct-encoded = "%" HEXDIG HEXDIG
sub-delims = "!" / "$" / "&" / "'" / "(" / ")" / "*" / "+" / "," / ";" / "=