のパスを適切にエンコードするには、ハッシュ(#)が含まれていますか?ハッシュはフラグメント(ブックマーク?)インジケータではなく、パス名の一部です。例えばハッシュを含むパスをエンコードする方法は?
、このようなパスがある場合:
http://www.contoso.com/code/c#/somecode.cs
あなたはたとえばこれを実行しようとすると、それは問題が発生します。
Uri myUri = new Uri("http://www.contoso.com/code/c#/somecode.cs");
はハッシュを解釈するように思わフラグメントインジケータとして。
手動で#を%23に置き換えるのは間違いです。交換すべき他の文字はありますか? UriとHttpUtilityにはいくつかのエスケープ方法がありますが、そのトリックを行う人はいません。
例の文字列encはエスケープされていますが、もはや有効なURIではありません。 Uri uri = new Uri(enc)を試してください。無効なURI例外がスローされます。しかし、正しい解決策を見つけました。 – Dodgyrabbit
興味深い。私は、MSDNのドキュメントでちょっと混乱しています。それは、_EncodesにURL文字列が書かれています。 UrlEncodeメソッドを使用すると、クエリ文字列の値など、URL全体をエンコードできます._(http://msdn.microsoft.com/en-us/library/system.web.httputility.urlencode.aspx参照) – LiquidPony