символ вертикальной трубы не обнаружен в NSURL

Я пытаюсь выполнить поиск в словаре Google, но URL-адрес содержит вертикальную черту/полосу | Мой код просто не загружает сайт

 //http://www.google.com/dictionary?aq=f&langpair=en|en&q=test+test+test&hl=en


if ([mySearchEngineName isEqualToString:@"Google Dictionary"]){
        NSLog(@"Currently searching %@ using %@", mySearchString, mySearchEngineName); 

        NSString *mutateSearchString = [mySearchString stringByReplacingOccurrencesOfString:@" " withString:@"+"];
        NSString *searchURL =[NSString stringWithFormat:@"http://www.google.com/dictionary?aq=f&langpair=en|en&q=%@&hl=en", mutateSearchString];
        NSURL *url = [NSURL URLWithString:searchURL];
        [webBrowser loadRequest:[NSURLRequest requestWithURL:url]];
    }

использование %7C тоже не сработало..

NSString *searchURL =[NSString stringWithFormat:@"http://www.google.com/dictionary?aq=f&langpair=en%7Cen&q=%@&hl=en", mutateSearchString];

person BlockReader    schedule 29.05.2011    source источник
comment
Можете ли вы сообщить нам, какую ошибку вы получили или как она не загружается. Также вы можете скопировать и вставить вывод NSLog полной строки URL для обоих | и версия строки %7C?   -  person Damien    schedule 29.05.2011


Ответы (1)


Рассмотрите возможность кодирования вашего URL-адреса, используя что-то вроде:

NSURL *url = [NSURL URLWithString:[searchURL stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]]; 

а не вручную делать это самостоятельно. Возможно, в вашем mySearchString NSString есть некоторые символы, которые также нуждаются в кодировании. Запустите эту кодировку после того, как вы stringWithFormat объедините полный URL.

person Damien    schedule 29.05.2011
comment
NSURL *url = [NSURL URLWithString:[searchURL stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]]; - person BlockReader; 29.05.2011