MonoTouch中的URL转义/ unescape功能

时间:2011-03-22 21:30:23

标签: c# xamarin.ios monodevelop

我在MonoTouch中寻找url escape和unescape函数。基本上我正在寻找方法 stringByReplacingPercentEscapesUsingEncoding 的MonoTouch等价物,如在Objective-c代码的以下行中所示:

 NSString *args = [(NSString*)[components objectAtIndex:3]
                   stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

我原本希望能够将其翻译成这样的东西:

string args = URL.Unescape(components[3]);

在MonoTouch中是否存在URL转义/ unescape函数,还是我必须自己滚动?

3 个答案:

答案 0 :(得分:19)

System.Web.HttpUtility.UrlDecode (string s);

单声道内容中的System.Web.Services.dll。

答案 1 :(得分:1)

MonoTouch附带的.Net框架版本中没有。

我相信我从谷歌代码here获得了它的来源。

您可能需要查找此许可证,我将其用于个人iPhone应用程序。

答案 2 :(得分:1)

除了回答, Split有params参数Split('&','=');表达首先由&分裂那么'='所以奇数元素都是要编码的值,如下所示。

    public static void EncodedQueryString(ref string queryString)
    {
        var array=queryString.Split('&','=');
        for (int i = 0; i < array.Length; i++) {
            string part=array[i];
            if(i%2==1)
            {               
                part=System.Web.HttpUtility.UrlEncode(array[i]);
                queryString=queryString.Replace(array[i],part);
            }
        }
    }

您应该只编码一般值。