1. ホーム
  2. android

[解決済み] AndroidにおけるURLエンコーディング

2022-03-15 21:28:49

質問

をどのようにエンコードするのですか? URL Androidでは?

こんな感じかと。

final String encodedURL = URLEncoder.encode(urlAsString, "UTF-8");
URL url = new URL(encodedURL);

上記を実行すると http://urlAsString は、次のように置き換えられます。 http%3A%2F%2FencodedURL を取得し、その後に java.net.MalformedURLException を使用すると、そのURLは

どのように解決するのですか?

URL全体をエンコードするのではなく、"信頼できないソース"から来た部分のみをエンコードするのです。

  • Javaです。

    String query = URLEncoder.encode("apples oranges", "utf-8");
    String url = "http://stackoverflow.com/search?q=" + query;
    
    
  • Kotlinです。

    val query: String = URLEncoder.encode("apples oranges", "utf-8")
    val url = "http://stackoverflow.com/search?q=$query"
    
    

または Strings.urlEncode(String str) ドロイドパーツ チェックした例外をスローしない

または、以下のようなものを使用します。

String uri = Uri.parse("http://...")
                .buildUpon()
                .appendQueryParameter("key", "val")
                .build().toString();