【问题标题】:Objective-C URL string contains single percent signObjective-C URL 字符串包含单个百分号
【发布时间】:2015-04-20 10:44:01
【问题描述】:

我有一个以百分号(%)结尾的字符串,

此字符串是为 URL 请求准备的参数:

NSString *parameter = @"/param=%";
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL urlWithString:[NSString stringWithFormat:@"http://www.whatev%@",parameter]]];

请求返回nil

我试过了:

NSString *parameter = @"/param=\uFF05";
//request returns nil

NSString *parameter =  @"/param=%";
NSString *newParameter = [parameter stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
//request returns /param=%25 ...where does 25 come from?!

我怎么可能只有 1% 转化为请求 url?

任何建议将不胜感激。

【问题讨论】:

标签: objective-c nsstring escaping sign percent-encoding


【解决方案1】:

百分号在 URL 中具有特殊用途,用于编码各种特殊字符。例如,空格 ( ) 是 %20,百分号本身是 %25。

http://en.wikipedia.org/wiki/Percent-encoding

最后一个应该是正确的,我假设您在使用它作为请求时遇到问题?

【讨论】:

  • 你说得对,最后一个工作正常!我只是对 25 感到困惑,忘了试一试哈哈......
【解决方案2】:

% 的转义序列是%%,所以@"/param=%%" 应该可以解决问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-23
    • 2011-03-26
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 2013-05-31
    相关资源
    最近更新 更多