web-dev-qa-db-ja.com

URLエンコード-アンパサンド問題

Webサイトの検索フォームでいくつかの問題を引き起こすいくつかの文字エンコーディングに問題があります。可能なフィールド値の1つにアンパサンドが含まれています。これが選択され、検索が送信されると、アンパサンドがエンコードされます:%2526

ページの下部にあるページネーションリンクを使用し、結果のリストの2番目のページに移動すると、アンパサンドは次のようにエンコードされます:%26

最後に...リストの3ページ目に移動しようとすると、アンパサンドが次のように変更されます:&これは、実際には存在しない変数があると想定するため、フォームを壊します。

エンコードが変更されるのはなぜですか?どうすれば修正できますか?ご協力いただきありがとうございます!

40
Vecta

フィールドが2回エンコードされているようです。最初のパスでは&26に変更され、%26のurlencodingは%2526になります。%自体のエンコーディングは%25であるためです。

69
Andrew Lee

Web APIでAndaman&Nicobarを使用する場合。

&の代わりに使用でき、%26を使用できます。全体は以下のように記述されます。

アンダマン+%26 +ニコバー

1
Pankaj Lahoti

Webページに表示されるリンクを使用してナビゲートしていると想定しています。

答えは、そのリンクのhrefタグでURLを生成する方法です。 href属性の値を設定しているとき、あなたは(ほとんどの場合)URLのアンパサンドを再エンコードしていません。

0
Wesley Long