0

私の URL 文字列には 2 つの部分があり、最初の部分は

http://abcabc.com/xyz/mmm/lorum/

2 番目は「abc def ghi」です。ここで最後の部分に使用します

URLEncoder.encode("abc def ghi","utf-8");

これにより、「abc + def + ghi」が返されます

最終URLは

http://abcabc.com/xyz/mmm/lorum/abc+def+ghi

どちらが間違っていますか、そうあるべきです

http://abcabc.com/xyz/mmm/lorum/abc%20def%20ghi

助言がありますか?

4

1 に答える 1

3

ウィキペディアから:

HTML フォームに入力されたデータが送信されると、フォーム フィールドの名前と値がエンコードされ、メソッド GET または POST を使用して HTTP 要求メッセージでサーバーに送信されるか、従来は電子メールで送信されます。2デフォルトで使用されるエンコーディングは、一般的な URI パーセント エンコーディング ルールの非常に初期のバージョンに基づいており、改行の正規化やスペースを「%20」ではなく「+」に置き換えるなど、多くの変更が加えられています。

したがって、 + はスペースをエンコードする有効な方法です。

ところで、これは明確に文書化されています:

HTML フォーム エンコーディング用のユーティリティ クラス。このクラスには、文字列を application/x-www-form-urlencoded MIME 形式に変換するための静的メソッドが含まれています

[...]

スペース文字「 」はプラス記号「+」に変換されます。

于 2012-10-08T20:09:05.857 に答える