Я хочу отправить URI в качестве значения параметра query/matrix. Прежде чем я могу добавить его в существующий 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
не имеет механизма для кодирования одного значения за раз, поэтому он не знает, что значение1 и значение2 являются частью одного и того же ключа.