[英]new Uri decoding relative path
以下代碼...
string date = DateTime.UtcNow.ToString("o");
Console.WriteLine(date);
string encodedDate = WebUtility.UrlEncode(date);
Console.WriteLine(encodedDate);
Uri uri = new Uri("https://mywebsite/");
Console.WriteLine(uri.ToString());
string relativePath = $"/mM0jpk613J5lzY00c3EaxQ%3D%3D/{encodedDate}";
Console.WriteLine(relativePath);
uri = new Uri(uri, relativePath);
Console.WriteLine(uri.ToString());
產生以下輸出是:-
2016-03-07T08:17:38.5247330Z
2016-03-07T08%3A17%3A38.5247330Z
https://mywebsite/
/mM0jpk613J5lzY00c3EaxQ%3D%3D/2016-03-07T08%3A17%3A38.5247330Z
https://mywebsite/mM0jpk613J5lzY00c3EaxQ%3D%3D/2016-03-07T08:17:38.5247330Z
我期待最后一行
HTTPS://mywebsite/mM0jpk613J5lzY00c3EaxQ%3D%3D/2016-03-07T08%3A17%3A38.5247330Z
Uri為什么不轉義相對路徑? 解決方法似乎是對relativepath進行兩次編碼,但是為什么呢?
我應該使用其他方法來創建此網址嗎?
編輯:我更新了代碼以顯示更多的奇怪行為,相對uri的第一部分保持編碼,但是第二部分沒有編碼!
URI是一個對象,它將以純凈/未轉義的形式表示鏈接。 如果您希望以添加方式對其進行檢索,請使用以下屬性。
uri.OriginalString
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.