Лучший способ кодировать URL в Java

Привет, народ,

У меня есть URL-адрес, и я хочу встроить его в тело файла mailto. До сих пор я пробовал 2 метода кодирования URL-адреса, и оба они не дали мне хороших результатов:

URLEncoder - это дало мне знак плюса в сообщении электронной почты, поскольку, по-видимому, URLEncoder подходит только для параметров запроса.

org.apache.commons.httpclient.URI - это не дает мне полный URL-адрес. Это дает мне те же результаты, которые я объяснил в сообщении ранее здесь: Escape & symbol in MailTo

Что я могу сделать?

Спасибо :) Krt_Malta


person Krt_Malta    schedule 13.03.2011    source источник
comment
Не могли бы вы более подробно указать URL-адрес, возвращаемый двумя методами, которые вы пробовали, с исходным URL-адресом?   -  person djondal    schedule 13.03.2011


Ответы (2)


Как насчет использования URIUtil из httpclient?

URIUtil.encodeQuery(strUrl, "UTF-8");

Кодирование следующего адреса mailto:jo [email protected] дает mailto:jo%20han.sj%C3%83%C2%[email protected]

Хотя технически и +, и %20 являются приемлемыми кодировками для пробела.

person Johan Sjöberg    schedule 13.03.2011

Поскольку пробелы преобразуются в +, будет ли достаточно просто заменить все экземпляры + на %20 в теле?

mailto: ?subject=Look at this link&body=Check%20out%20this%20too%20http://localhost:9001/view/shopindex/display?keyword=test%26searchPostcode=Postcode"

Демо

person Matt Ball    schedule 13.03.2011