W3 SchoolsのURLエンコードWebページを見ると、それはとして@
エンコードする必要があり、それは%40
としてエンコードする必要があると書かspace
れてい%20
ます。
私はとの両方を試しましURLEncoder
たURI
が、どちらも上記を正しく行いません:
import java.net.URI;
import java.net.URLEncoder;
public class Test {
public static void main(String[] args) throws Exception {
// Prints me%40home.com (CORRECT)
System.out.println(URLEncoder.encode("me@home.com", "UTF-8"));
// Prints Email+Address (WRONG: Should be Email%20Address)
System.out.println(URLEncoder.encode("Email Address", "UTF-8"));
// http://www.home.com/test?Email%20Address=me@home.com
// (WRONG: it has not encoded the @ in the email address)
URI uri = new URI("http", "www.home.com", "/test", "Email Address=me@home.com", null);
System.out.println(uri.toString());
}
}
何らかの理由でURLEncoder
、電子メールアドレスは正しく実行されますが、スペースは実行されURI
ません。また、スペース通貨は実行されますが、電子メールアドレスは実行されません。
w3schoolsが正しいと言っていること(またはw3schoolsが間違っていること)と一致するように、これら2つのパラメーターをどのようにエンコードする必要がありますか?