0

say のような変数がありますA= drug & medicare $12/$15

テキストボックスに割り当てる必要がありますが、サーバーに投稿されるのは「薬物」だけです。残りのデータは切り捨てられます。

this.textbox.text= request.querystring["A"].tostring();
4

3 に答える 3

0

HTMLエンティティに問題があると思います。選択したツールでの HTML エスケープについて読む必要があります。&はエンティティ シーケンスを開始するため、HTML では使用できません。 に置き換える必要があります&。少なくとも使用しているツールチェーンを指定しないと (@Richard のコメントに従って)、それを行うための最良の方法を実際に提案することはできません。

編集:あなたの質問を読み直したので、Aは変数ではなくクエリパラメータのようです:)読解力は失敗します。いずれにせよ、この場合も同様の問題が存在します: & はクエリ パラメータとして有効な文字ではなく、URL エスケープが必要です。繰り返しますが、正確に行う方法はツールチェーンのドキュメントにありますが、本質的に & を に置き換える必要があります%26。プラス記号も使用できません (別の意味があります)。他のものは許容されます (しかし、それらを書くもっと良い方法があります)。

于 2011-11-28T19:12:12.637 に答える
0

以下は a="foo&bar$12" には無効です:

http://example.com?a=foo&bar$12

& 記号は予約文字であり、クエリ文字列変数を区切ります。そのページに値を送信する前に、値をパーセント エンコードする必要があります。

また、& は HTML/XML の予約文字です。パーセントエンコーディングとhtmlエンコーディングについて読むことをお勧めします。

于 2011-11-28T19:15:43.983 に答える
0

これは多かれ少なかれ ASP.NET 疑似コードのように見えるので、URL エンコードが必要なクエリ文字列として問題を診断します。クエリ文字列のキーと値のペアはアンパサンド (&) で区切られ、ASP.NET (他の Web プラットフォームと同様) がキーと値のペアを自動的に解析します。

この場合、アンパサンドは「A=...」キーと値のペアの値を終了します。ユーザーをページに誘導するリンクを URL エンコードできれば、問題は解決します。実際に ASP.NET を使用している場合は、そのためにHttpUtility.UrlEncode() メソッドを使用できます。

string myValue = Server.UrlEncode("drug & medicare $12/$15");

代わりに、次のクエリ文字列になります: A=drug%20%26%20medicare%20%2412%2F%2415

于 2011-11-28T19:23:36.020 に答える