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

时间:2015-04-20 10:44:02

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

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

此字符串是为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?!

我怎么能只有一个%转换为请求网址?

任何建议都将受到赞赏。

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

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