タイトルにあるように、どのエンコーダーが%20
ではなく+
としてスペースを与えてくれますか? Android用に必要です。 Java.net.URLEncoder.encodeは+
を提供します
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スキームを使用してエスケープされたオクテット。文字( "A-Z"、 "a-z")、数字( "0-9")、および予約されていない文字( "_-!.〜 '()*")はそのまま残します。
注:URLEncoder
では、__-.*
_のみが予約されていない文字と見なされます。 !~'()
は_%21%7E%27%28%29
_に変換されます。
+
は自分で置き換える必要があります。
例:
System.out.println(Java.net.URLEncoder.encode("Hello World", "UTF-8").replace("+", "%20"));
この投稿の詳細については、以下をご覧ください。