わかりません。なぜServer.UrlEncode()
&を使用するのServer.UrlDecode()
ですか?! QueryString では URL に何かが表示されますが、なぜそれらをエンコードまたはデコードする必要があるのでしょうか?
3 に答える
URLEncode メソッドは、エスケープ文字を含む URL エンコード規則を指定された文字列に適用します。
URLEncode は次のように文字を変換します。
スペース ( ) はプラス記号 (+) に変換されます。
英数字以外の文字は、16 進数表現にエスケープされます。
HttpServerUtility.UrlDecode
また、エンコードされた文字列をデコードして元の文字列を返すメソッドについて話していると思います。
文字列を URL デコードし、デコードされた文字列を返します
URL エンコーディングにより、すべてのブラウザーが URL 文字列内のテキストを正しく送信できるようになります。クエスチョン マーク (?)、アンパサンド (&)、スラッシュ マーク (/)、およびスペースなどの文字は、一部のブラウザーで切り捨てられたり、破損したりする場合があります。その結果、これらの文字はタグまたはクエリ文字列でエンコードする必要があります。これらの文字列は、ブラウザーが要求文字列で再送信できます。
UrlDecode は、実行時に ASP.NET アプリケーションから HttpUtility.UrlDecode メソッドにアクセスするための便利な方法です。内部的には、UrlDecode は HttpUtility.UrlDecode を使用して文字列をデコードします。
より詳しい情報 ...
URLEncode は次のように文字を変換します。
Spaces ( ) are converted to plus signs (+). Non-alphanumeric characters are escaped to their hexadecimal representation.
<%Response.Write(Server.URLEncode("http://www.microsoft.com")) %>
produces the following output:
http%3A%2F%2Fwww%2Emicrosoft%2Ecom
一部の文字は URL では使用できないため、エンコードする必要があります。これは、不正な文字のリストで見つけた最初のヒットでした。