5

.NET 3.5 を使用しています。

ここで説明されている両方のソリューション(構成ファイルのプロパティ"genericUriParserOptions"とコンストラクター パラメーター"dontEscape") は、.NET 3.5 では機能しません。

URIコンストラクターがエスケープしないようにしたい (つまり、エスケープされた部分が必要URL)。今、私は構成ファイルを使用できません

genericUriParserOptions="DontUnescapePathDotsAndSlashes"

このプロパティは .NET 4.0 でのみ使用できるためです。ただし、コンストラクターは .NET 3.5 で廃止され、常に であるため、コンストラクターで"dontEscape"パラメーターも使用できません。URIfalse

URI.NET 3.5 でエスケープされた文字列を作成するにはどうすればよいですか?

4

1 に答える 1

1

無効な可能性があるユーザー名または URL の他の部分のみをエンコードする必要があります。URL をエンコードすると、次のような問題が発生する可能性があります

string url = HttpUtility.UrlEncode("http://www.google.com/search?q=Example");

譲ります

http%3a%2f%2fwww.google.com%2fsearch%3fq%3dExample

これは明らかにうまく機能しません。代わりに、次のように、クエリ文字列のキーと値のペアの値のみをエンコードする必要があります。

string url = "http://www.google.com/search?q=" + HttpUtility.UrlEncode("Example");

ありがとう。

于 2014-01-08T14:16:32.053 に答える