15

タイトルが示すように、どのエンコーダーが私にスペースを与えるの%20ではなく+? アンドロイドに必要です。java.net.URLEncoder.encode が与える+

4

2 に答える 2

26

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

UriUTF-8 スキームを使用して、指定された文字列内の文字を「%」でエスケープされたオクテットとしてエンコードします。文字 ("AZ"、"az")、数字 ("0-9")、および予約されていない文字 ("_-!.~'()*") はそのまま残します。

注: のみ_-.*が予約されていない文字と見なされURLEncoderます。!~'()に変換され%21%7E%27%28%29ます。

于 2013-08-19T21:37:12.530 に答える