Java.net.URLEncoder.encode кодирует пространство как +, но мне нужно% 20

Как говорится в заголовке: какой кодировщик дал бы мне пространство как %20 а не + ? Мне нужно это для Android. Java.net.URLEncoder.encode дает +

Solutions Collecting From Web of "Java.net.URLEncoder.encode кодирует пространство как +, но мне нужно% 20"

У Android есть собственный класс Uri который вы можете использовать.

Например

 String url = Uri.parse("http://www.google.com").buildUpon() .appendQueryParameter("q", "foo bar") .appendQueryParameter("xml", "<Hellö>") .build().toString(); 

Приводит к

http://www.google.com?q=foo%20bar&xml=%3CHell%C3%B6%3E

Uri Кодирует символы в данной строке как «%» – экранированные октеты с использованием схемы UTF-8. Листовые буквы («AZ», «az»), цифры («0-9») и незарезервированные символы («_- !. ~ '() *») нетронуты.

Примечание: только _-.* Считаются незарезервированными символами URLEncoder . !~'() Преобразуется в %21%7E%27%28%29 .

Вы должны заменить + на себя.

Пример:

 System.out.println(java.net.URLEncoder.encode("Hello World", "UTF-8").replace("+", "%20")); 

Подробнее об этом сообщении:

URLEncoder не способен переводить символ пробела