Я хочу отправить URI в качестве значения параметра запроса / матрицы. Прежде чем я смогу добавить его к существующему URI, мне нужно закодировать его в соответствии с RFC 2396. Например, учитывая ввод:
http://google.com/resource?key=value1 & value2
Ожидаю на выходе:
http%3a%2f%2fgoogle.com%2fresource%3fkey%3dvalue1%2520%26%2520value2
Ни java.net.URLEncoder
, ни java.net.URI
не будут генерировать правильный результат. URLEncoder
предназначен для кодирования HTML-формы, которое отличается от RFC 2396. URI
не имеет механизма для кодирования одного значения за раз, поэтому у него нет возможности узнать, что value1 и value2 являются частью одного и того же ключа.
URLEncoder
не работает в приведенном выше вопросе. - person Gili   schedule 18.08.2015