Come dice il titolo: quale codificatore potrebbe darmi spazio come %20
rispetto a +
? Ne ho bisogno per Android. java.net.URLEncoder.encode fornisce +
java.net.URLEncoder.encode codifica lo spazio come + ma ho bisogno di% 20
12
A
risposta
2
È necessario sostituire il +
da soli.
Esempio:
System.out.println(java.net.URLEncoder.encode("Hello World", "UTF-8").replace("+", "%20"));
Per ulteriori un'occhiata a questo post:
25
Android ha il proprio Uri
classe che si può usare.
E.g.
String url = Uri.parse("http://www.google.com").buildUpon()
.appendQueryParameter("q", "foo bar")
.appendQueryParameter("xml", "<Hellö>")
.build().toString();
risultati in
http://www.google.com?q=foo%20bar&xml=%3CHell%C3%B6%3E
Uri
codifica i caratteri della stringa data come '%' - fuggirono ottetti utilizzando lo schema di codifica UTF-8. Lasciano intatte le lettere ("A-Z", "a-z"), i numeri ("0-9") e i caratteri non riservati ("_- !. ~ '() *").
Nota: solo _-.*
sono considerati personaggi senza riserve da URLEncoder
. !~'()
verrebbe convertito in %21%7E%27%28%29
.