どのようにエンコードしますかメールアドレスAndroidでは?
私は次のように考えました:
final String encodedURL = URLEncoder.encode(urlAsString, "UTF-8");
URL url = new URL(encodedURL);
上記を実行すると、http://
in がinurlAsString
に置き換えられ、 URL を使用すると が表示されます。http%3A%2F%2F
encodedURL
java.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();