【问题标题】:Escaping NSURL characters转义 NSURL 字符
【发布时间】:2013-12-12 15:18:36
【问题描述】:

我正在为 LinkedIn api 开发一个库。在某些情况下,我需要发送一个转义的 url。 我使用 CFURLCreateStringByAddingPercentEscapes 来完成这项任务,似乎对我有用。

为什么这不是一个有效的 URL?

NSURL *base = [NSURL URLWithString:@"https://api.linkedin.com"];
NSString *r = @"/v1/people/url={www.linkedin.com%2Fin%2Fbilby91}";
NSURL finalUrl = [NSURL URLWithString:r relativeToURL:base];

finalUrl 始终为空,我认为已正确转义。原始网址是 www.linkedin.com/Fin/bilby91

谢谢

【问题讨论】:

    标签: objective-c escaping nsurl


    【解决方案1】:

    添加这个

    NSString *r = [@"/v1/people/url={www.linkedin.com%2Fin%2Fbilby91}" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

    【讨论】:

      【解决方案2】:

      问题是这个字符'{''}' 需要编码,即使它们没有被保留。包括之前的字符在内的某些字符被认为是不安全的,并且可能在 url 中被误解,因此最好始终对它们进行编码。

      【讨论】:

        【解决方案3】:
        [NSString stringWithFormat:@"%@",[r stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
        

        使用这个,这可能对你有帮助

        【讨论】:

        • 这段代码的stringWithFormat: 部分没有意义
        猜你喜欢
        • 2014-06-08
        • 1970-01-01
        • 2016-05-05
        • 1970-01-01
        • 1970-01-01
        • 2014-09-29
        • 1970-01-01
        • 2018-10-16
        • 2016-06-04
        相关资源
        最近更新 更多