Android での URL エンコード 質問する

Android での URL エンコード 質問する

どのようにエンコードしますかメールアドレスAndroidでは?

私は次のように考えました:

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

上記を実行すると、http://in がinurlAsStringに置き換えられ、 URL を使用すると が表示されます。http%3A%2F%2FencodedURLjava.net.MalformedURLException

ベストアンサー1

URL 全体をエンコードするのではなく、「信頼できないソース」から取得した URL の一部のみをエンコードします。

  • ジャワ:

    String query = URLEncoder.encode("apples oranges", Charsets.UTF_8.name());
    String url = "http://stackoverflow.com/search?q=" + query;
    
  • コトリン:

    val query: String = URLEncoder.encode("apples oranges", Charsets.UTF_8.name())
    val url = "http://stackoverflow.com/search?q=$query"
    

あるいは、文字列.urlEncode(文字列 str)ドロイドパーツチェック例外をスローしません。

または、次のようなものを使用してください

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

おすすめ記事