JavaでURLクエリパラメータをエンコードする 質問する

JavaでURLクエリパラメータをエンコードする 質問する

Java で URL に渡すクエリ パラメータをエンコードするにはどうすればよいでしょうか。これは明らかな、すでに尋ねられた質問のように思えます。

よくわからない微妙な点が 2 つあります。

  1. URL のスペースは「+」でエンコードするべきでしょうか、それとも「%20」でエンコードするべきでしょうか? Chrome で「http://google.com/foo=?bar me」と入力すると、Chrome はそれを %20 でエンコードするように変更します。
  2. コロン「:」を %3B としてエンコードすることは必要ですか?/正しいですか? Chrome ではそうではありません。

ノート:

  • java.net.URLEncoder.encode動作していないようですが、フォームに送信されるデータをエンコードするためのもののようです。たとえば、スペース+を の代わりにとしてエンコードし%20、不要なコロンをエンコードします。
  • java.net.URIクエリパラメータをエンコードしない

ベストアンサー1

java.net.URLEncoder.encode(String s, String encoding)も役立ちます。HTML フォームのエンコーディングに従いますapplication/x-www-form-urlencoded

URLEncoder.encode(query, "UTF-8");

一方で、パーセントエンコーディング(としても知られているURLエンコード) はスペースを でエンコードします%20。コロンは予約文字なので、:エンコード後もコロンのままになります。

おすすめ記事