-1
我已經注意到,如果你打電話Uri.ToString()
當URI背後是百分之編碼的空間(20%)的URL,那麼你就會有錯誤的URL作爲結果:.NET Uri.ToString()破壞了URL?
// result: "http://example.com/test segment"
new Uri("http://example.com/test%20segment").ToString();
由於URL is URI(相反說法是不正確的)和帶有非編碼空間的URL is not valid它看起來使用Uri作爲URL的容器是不安全的。
這是正確的行爲嗎?
推測'的ToString()'被解析'%20'以下母體編碼規範,並確定它應該是一個空間。 –
[MSDN](https://msdn.microsoft.com/en-us/library/system.uri.tostring(v = vs.110).aspx)表示應該使用常規空格返回字符串。如果你想用'%20'代替空格,使用.OriginalString。 – Tvde1
你指出的文檔說'.ToString()'返回空格,而'.OriginalString'返回'%20'。 – wdosanjos