Objective-C URL 字符串包含单个百分号

Objective-C URL string contains single percent sign

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

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

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

要求returnsnil.

我试过:

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?

如有任何建议,我们将不胜感激。

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

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

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

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