2014-10-02 65 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