2014-02-10 61 views
3

C#的相當於encodeURIComponentwell-covered SO和其他地方,但encodeURI?基本上,我想編碼invalid網址字符,而不是保留字符,例如/:等,所以相當於Javascript的encodeURI?

"http://www.example.com/my cool page" 

將被編碼到

"http://www.example.com/my%20cool%20page" 

有什麼烤成。 NET來做到這一點?或者是一個正則表達式我最好的選擇?

+0

(請注意鏈接問題中提供的許多方法*之間的細微差別。) – user2864740

+1

請不要關閉此問題。這不是encodeURI ** Component **問題的重複;我試圖在第一句話中明確這一區分。 –

+0

.NET *沒有任何東西*,它取決於你使用的是什麼框架。 ASP.NET,.NET 4.5,便攜式庫等... –

回答

5

嘗試

Uri.EscapeUriString("http://www.mysite.com/my cool page") 
+0

這是最便攜的方法 –

+1

賓果,這就是我一直在尋找。 HttpUtility.UrlEncode(以及類似的)編碼整個東西,即'http%3a%2f%2fwww.mysite.com%2fmy + cool + page',這不是我以前的樣子。謝謝! –

1

嘗試

Server.URLEncode(uri.ToString) 
+0

這不是特定於ASP.NET嗎? –

1

試試這個:

HttpUtility.UrlEncode(String) 

例如:

var url_encoded_string = HttpUtility.UrlEncode(userInput); 
0

你可以使用System.Net.WebUtility.UrlEncode(string value)

+0

可用於.NET 4及更高版本(適用於Windows應用商店) –