私はリダイレクトとリターン URL で何かをしていましたが、何かおかしいことに気付きました。このコード行をビジュアル スタジオのイミディエイト ウィンドウで実行しました。
Uri.EscapeUriString("/z?x=y&w="+Uri.EscapeUriString("/a?b=c&d=e"))
"/z?x=y&w=/a?b=c&d=e"
これは間違ったエスケープのようです。私のアプリは、dがクエリ文字列の一部なのか、後でリダイレクトしたいURLの文字列の一部なのかをどのように知っていると思いますか。そこで、念のため UnescapeDataString を試してみました。
Uri.UnescapeDataString(Uri.EscapeDataString("a b+c"))
"a b+c"
「+」をスペースにデコードしないため、使用すべきではないことがわかりました
Uri.UnescapeDataString("ab+c")
"ab+c"
UnescapeDataString と EscapeUriString の両方が正しくない場合、どうやって uri をエスケープすると思いますか?