2014-10-02 53 views
2

我想知道,如果.NET Framework類庫提供了一種方法或一種方法來efficientlly解碼這種路徑的URL:解碼這種路徑url?

file:///C:/Users/Administrador/Downloads/V%EDdeos 

的問題是轉義字符,其中在這個例子中%ED確實是一個í

我試過System.Web.HttpUtility Class的解碼器方法,但沒有解決問題。

+0

你試過'System.Uri'? – 2014-10-02 18:15:34

+0

@Daniel A. White現在我試過了,它沒有解決字符格式問題 – ElektroStudios 2014-10-02 18:17:03

+0

MAYBE看看這個問題:http://stackoverflow.com/questions/14327085/querystring-converting-e1-to- ufffd,然後在'RawURL'/URLEncoding? - 只是想着,但從來沒有嘗試過......因此,把它留作評論... – 2014-10-02 18:58:27

回答

2

HttpUtility.UrlDecode有一個過載需要參數Encoding

你只需要指定latin1編碼(ISO-8859-1):

string input = "file:///C:/Users/Administrador/Downloads/V%EDdeos"; 
string decoded = HttpUtility.UrlDecode(input, Encoding.GetEncoding("ISO-8859-1")); 
+0

謝謝我真的沒有注意到它,只需注意一點:它足以傳遞'Encoding.Default'作爲參數,因爲它包含默認的ANSI代碼頁,則不需要指定拉丁ISO。再次感謝 – ElektroStudios 2014-10-02 19:12:44

+1

@ElektroStudios,yw,但要小心'Encoding.Default',儘管目前的系統代碼頁可能在不同的系統上有所不同。 – 2014-10-02 19:15:39