Jak mówi tytuł: który enkoder dałby mi miejsce jako %20
w przeciwieństwie do +
? Potrzebuję tego dla Androida. java.net.URLEncoder.encode daje +
java.net.URLEncoder.encode koduje spację jako +, ale potrzebuję% 20
12
A
Odpowiedz
2
Musisz samodzielnie wymienić +
.
Przykład:
System.out.println(java.net.URLEncoder.encode("Hello World", "UTF-8").replace("+", "%20"));
Więcej patrzeć na ten post:
25
Android ma własne Uri
klasa których można użyć.
E.g.
String url = Uri.parse("http://www.google.com").buildUpon()
.appendQueryParameter("q", "foo bar")
.appendQueryParameter("xml", "<Hellö>")
.build().toString();
skutkuje
http://www.google.com?q=foo%20bar&xml=%3CHell%C3%B6%3E
Uri
Koduje znaków w danym ciągu znaków jako '%' - uciekł oktety użyciu schematu UTF-8. Pozostawia litery ("A-Z", "a-z"), cyfry ("0-9") i niezarezerwowane znaki ("_- !. ~"() * ") w stanie nienaruszonym.
Uwaga: tylko _-.*
są uważane za niezarezerwowane znaki przez URLEncoder
. !~'()
zostałby przekonwertowany na %21%7E%27%28%29
.