Лучший способ кодировать URL в Java - PullRequest
1 голос
/ 13 марта 2011

Привет, ребята,

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

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

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

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

Спасибо :) Krt_Malta

Ответы [ 2 ]

6 голосов
/ 13 марта 2011

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

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

Кодировка следующего адреса mailto:jo han.sjoberg@m.com дает mailto:jo%20han.sj%C3%83%C2%B6berg@m.com

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

1 голос
/ 13 марта 2011

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

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

Демо

...