2011-08-10 36 views
28

私のウェブサイトの検索フォームに問題が発生しているため、文字エンコーディングに問題があります。可能なフィールド値の1つにアンパサンドが含まれています。これが選択され、検索がアンパサンドがにエンコードされて送信されると:%26URLエンコーディング - アンパサンド問題

:アンパサンドがにエンコードされたページの下部にページネーションのリンクを使用して、結果のリストの2番目のページへの移動の際に %2526

最後に、リストの3番目のページに移動しようとすると、アンパサンドは次のように戻されます。&これは実際には存在しない変数があると仮定してフォームを分割します。

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

答えて

53

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

0

あなたのウェブページに表示されているリンクを使ってナビゲートしているとします。

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

関連する問題