2009-09-10 10 views

答えて

15

これを試してみてください:

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

または

string decodedUrl = HttpUtility.UrlDecode(url) 

のURLは、完全に1回のコールでデコードされていません。完全にあなたがループ内でこのメソッドのいずれかを呼び出すことができますデコードするには、次の

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ありがとうございました!私はそれがちょうど1つの呼び出しで完全に動作しなかったことを知らなかった!私は 'Uri.UnescapeDataString'を二回走らせて、私が望むものを手に入れました! :D – C0NFUS3D

+3

これは間違いなく受け入れられた答えであるはずです。 – Sevenate

3

は、私は何とか、このようにあなたのURLをデコードすることができます拡張メソッドを作成するために提案できるソリューション回避策としてstring s = System.Uri.UnescapeDataString(here);

-2

をお試しください:

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; 

    } 
} 

希望すると助かります!

関連する問題