С URLDecoder
это не работает, потому что вам нужно кодировать, а не декодировать:
url = URLEncoder.encode(url, "UTF-8");
Для других опубликованных вами примеров вам необходимо переназначить строку:
url = url.replace(" ", "%20");
url = url.replaceAll(" ", "%20");
Как заметил Петтер, URLEncoder.encode
добавит +
вместо %20
. Вот как работает URLEncoder, но вы можете использовать
url = URLEncoder.encode(url, "UTF-8").replace("+","%20");
чтобы он работал так, как вы хотите.
Другой вариант — использовать класс Uri
:
String url = "http://dli.ircms.in/complaint.php";
url = Uri.parse(url).buildUpon().appendQueryParameter("complaintno","sarojini nagar/06022014/4").build().toString();
Результат:
http://dli.ircms.in/complaint.php?complaintno=sarojini%20nagar%2F06022014%2F4
person
BackSlash
schedule
06.02.2014