2012-04-12 17 views
4

現在、特定のURLパラメータが必要なWebアプリケーションを開発中です。例えば、私は、URLバーには、このパラメータを入力しています:Internet ExplorerはURLパラメータをエンコードしません

...Page.aspx?user=chantal.côté 

FirefoxとChromeは自動的に次のようにURLをエンコードします:

...Page.aspx?user=chantal.c%C3%B4t%C3%A9 

しかし、Internet Explorerはそう、自動的にURLをコードしませんこのシンボル(デバッグ時)でエラーが発生します。私が...Page.aspx?user=chantal.c%C3%B4t%C3%A9と入力するとすべてうまく動作しますが、私はそれをしたくありません!

URLをエンコードするようInternet Explorerに明示的に指示する必要がある場所はありますか。

+0

エラーは何ですか?おそらくIEの設定を見つけるよりも良い選択肢があります。この場合、アプリケーションを使用するすべてのユーザーに同じIE設定を強制する必要があります。 – Khan

+0

Request.QueryString ["user"]からデータを取得したときToString()はôまたはéの代わりに のシンボルを返します – Soader03

+0

私の答えに自分のコメントを見てください。 – Joe

答えて

2

おそらくあなたのWebアプリを手動で自分のブラウザにクエリ文字列を入力するユーザーを取得することによって動作しません、他の側からHttpServerUtility.UrlEncodeHttpServerUtility.HtmlDecodeをチェックアウトしてください。テスト用のHTMLページを作成し、次のようにしてください。

<a href="http://whatever.com?user=chantal.côté">link</a> 

IEでこのテストページを開き、リンクをクリックします。クエリ文字列内の文字は正しくエンコードされます。あなたが手作業でアドレスバーに情報を入れると、IEはURLエンコードしないようですが、この事実はあなたのアプリとは無関係です。

1

使用

HttpUtility.UrlEncode(string) 
+0

Request.QueryString ["user"]。ToString()が私に – Soader03

+2

を与えるので、これは使用できません。リダイレクトで使用する必要があります。リクエストが行われる前にURLをエンコードし、ターゲットページでUrlDecode(文字列)を使用します。 – Joe

+0

ユーザーが手動でURLを入力します。リダイレクトはありません – Soader03

0

+1

コメントでなければなりません。 – Pankaj

関連する問題