【问题标题】:vertical pipe symbol not being detected in NSURL在 NSURL 中未检测到垂直管道符号
【发布时间】:2011-09-04 06:29:56
【问题描述】:

我正在尝试在 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];

【问题讨论】:

  • 您能否告诉我们您遇到了什么错误或以何种方式无法加载。您还可以为 | 复制和粘贴完整 URL 字符串的 NSLog 输出吗?和字符串的 %7C 版本?

标签: objective-c nsurl


【解决方案1】:

考虑使用以下代码对您的 URL 进行编码:

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

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

【讨论】:

  • NSURL *url = [NSURL URLWithString:[searchURL stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]];
猜你喜欢
  • 2018-02-09
  • 2016-08-14
  • 1970-01-01
  • 2022-12-11
  • 2014-10-21
  • 1970-01-01
  • 2014-10-20
  • 2017-11-09
相关资源
最近更新 更多