Я хочу отправить 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 являются частью одного и того же ключа.