Url escape / unescape функции в MonoTouch - PullRequest
10 голосов
/ 23 марта 2011

Я ищу функции выхода и удаления URL в MonoTouch.По сути, я ищу MonoTouch, эквивалентный методу stringByReplacingPercentEscapesUsingEncoding , как в следующей строке кода объективного c:

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

Я ожидал, что смогу перевести это на что-тонапример:

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

Существуют ли функции перехода / отмены URL-адреса в MonoTouch или я должен свернуть свои собственные?

Ответы [ 3 ]

19 голосов
/ 23 марта 2011
System.Web.HttpUtility.UrlDecode (string s);

Что находится в System.Web.Services.dll в монотуше.

1 голос
/ 01 марта 2013

В дополнение к ответу у 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);
            }
        }
    }

Вы должны кодировать только значения в целом.

1 голос
/ 23 марта 2011

Нет в версии .Net framework, включенной в MonoTouch.

Я думаю, что я получил источник этого кода из Google Code здесь .

Возможно, вы захотите найти лицензию для этого, я использовал ее для персонального приложения для iPhone.

...