6
在.Net 4.5之前,似乎System.Uri會對未編碼的斜槓進行unncode編碼,但這已經被修復了。參考:https://stackoverflow.com/a/20733619/188740System.Uri和編碼冒號(:)
我遇到了與冒號相同的問題。 System.Uri仍然解開已編碼的冒號。例如:
var uri = new Uri("http://www.example.com/?foo=http%3A%2F%2Fwww.example.com");
var s = uri.ToString(); //http://www.example.com/?foo=http:%2F%2Fwww.example.com
通知%3A
如何得到由的System.Uri切換回:
。這是一個錯誤?什麼是最好的解決方法?
AbsoluteUri就像一個魅力。沒有AbsoluteUri,爲什麼冒號會得到未編碼?對我來說就像一個錯誤。 –
是的,它看起來像。我相信這個錯誤是在某處[http://referencesource.microsoft.com/#System/net/System/URI.cs,1675],它會繼續前進,並會忽略某些部分。而'.AbsoluteUri'有一個更簡單的[實現](http://referencesource.microsoft.com/#System/net/System/URI.cs,738)。 – degant