目标c-NSURL中未检测到垂直管道符号



我试图在谷歌词典中进行搜索,但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];

考虑使用以下内容对URL进行编码:

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

而不是自己手动操作。也许您的mySearchStringNSString中有一些字符也需要编码。在stringWithFormat将完整URL组合在一起后运行此编码。

最新更新