1

Context: ASP.NET MVC 2.0

I want to support URL of following format:

wowreforge.com?Exp=220,Hit<461,Mastery>Haste>Crit

It works in both FF and IE. They both escape symbols correctly when entered.

My question: are there any reasons not to use the URL-form above?

Background
I want the URL to be usable as a general formula that you can paste in a thread discussion, or instant message. Something like:

I think that for combat rogue wowreforge.com?Exp=220,Hit<461,Mastery>Haste>Crit is the best reforging strategy.

Any alternative implementation ideas are welcome.

4

3 に答える 3

1

このような値は、常にWebフレームワークのURLエンコード機能を介して実行する必要があります。このような関数は、エンコードする必要のある値をエンコードし、エンコードしない値はエンコードしません。

これは、クエリ文字列で問題のない文字とそうでない文字を推測するよりも優れています。

また、このエンコーディングは、クエリ文字列自体ではなく、各クエリ文字列パラメータの値に適用する必要があることに注意してください。(そうしないと、たとえば、パラメーターを分割するアンパサンドを不適切にエンコードすることになります)

于 2010-12-17T17:33:43.763 に答える
1

<>URLでは許可されておらず、パーセントエンコードでエンコードする必要があります。

ただし、それ以外に、ブラウザがURLを表示する方法と実際にエンコードされる方法には違いがあります。たとえば、最近のブラウザは、UTF-8の文字を表すパーセントエンコードされた単語のシーケンスを、エンコードされた単語ではなく、それらが表す文字として表示します。そのため、のようなURLは、実際にはとしてエンコードされているものの、http://en.wikipedia.org/wiki/%C3%9Fとして表示されることがよくあります。http://en.wikipedia.org/wiki/ßhttp://en.wikipedia.org/wiki/%C3%9F

于 2010-12-17T17:33:57.803 に答える
0

RFC 1738は、これは悪い考えだと言っています。

"...英数字[0-9a-zA-Z]、特殊文字" $-_。+!*'() "、[引用符は含まない-ed]、および予約目的で使用される予約文字のみURL内でエンコードせずに使用してください。」

ASCII制御コードを使用してすべての特殊文字をエンコードしてみてください。これは、URLを介して特殊文字を送信するための安全な方法です。

于 2010-12-17T17:33:19.943 に答える