2009-09-10 22 views

Trả lời

15

Hãy thử điều này:

string decodedUrl = HttpUtility.UrlDecode("my.aspx?val=%2Fxyz2F"); 
195
string decodedUrl = Uri.UnescapeDataString(url) 

hoặc

string decodedUrl = HttpUtility.UrlDecode(url) 

Url không được giải mã hoàn toàn với một cuộc gọi. Để giải mã đầy đủ bạn có thể gọi một trong những phương pháp này trong một vòng lặp:

private static string DecodeUrlString(string url) { 
    string newUrl; 
    while ((newUrl = Uri.UnescapeDataString(url)) != url) 
     url = newUrl; 
    return newUrl; 
} 
+8

Uri.UnescapeDataString (url) thanx – themis

+0

@ogi Cảm ơn vì điều đó! Tôi không biết nó không hoàn toàn làm việc chỉ với một cuộc gọi! Tôi chạy 'Uri.UnescapeDataString' hai lần và nhận được những gì tôi muốn !! : D – C0NFUS3D

+3

Điều này chắc chắn phải là một câu trả lời được chấp nhận. – Sevenate

3

Hãy thử string s = System.Uri.UnescapeDataString(here);

-2

Là một công trình xung quanh giải pháp tôi có thể gợi ý để tạo ra một phương pháp khuyến nông có thể giải mã URL của bạn trong bằng cách nào đó như thế này:

public static class DecodeString 
{ 
    public static string ToDecodeString(this string x) 
    { 
     if (x.Contains("%2B")) 
     { 
      x = x.Replace("%2B", "+"); 
     } 
     if (x.Contains("%2F")) 
     { 
      x = x.Replace("%2F", "/"); 
     } 
     if (x.Contains("%3D")) 
     { 
      x = x.Replace("%3D", "="); 
     } 
     return x; 

    } 
} 

Hy vọng điều đó có thể hữu ích!

Các vấn đề liên quan